test/tint: Update SKIP "expectations"

Change-Id: I131522625051426e93624fbe4f4763071f26ad72
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/122202
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/test/tint/benchmark/particles.wgsl.expected.glsl b/test/tint/benchmark/particles.wgsl.expected.glsl
index 1f06dce..a869683 100644
--- a/test/tint/benchmark/particles.wgsl.expected.glsl
+++ b/test/tint/benchmark/particles.wgsl.expected.glsl
@@ -226,8 +226,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:75: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:75: '' : compilation terminated
+ERROR: 0:75: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:75: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -350,13 +350,13 @@
   if (all(lessThan(coord.xy, uvec2(uvec2(imageSize(tex_out)))))) {
     uint dst_offset = (coord.x + (coord.y * ubo.inner.width));
     uint src_offset = ((coord.x * 2u) + ((coord.y * 2u) * ubo.inner.width));
-    float a_1 = buf_in.weights[(src_offset + 0u)];
+    float a = buf_in.weights[(src_offset + 0u)];
     float b = buf_in.weights[(src_offset + 1u)];
     float c = buf_in.weights[((src_offset + 0u) + ubo.inner.width)];
     float d = buf_in.weights[((src_offset + 1u) + ubo.inner.width)];
-    float sum = dot(vec4(a_1, b, c, d), vec4(1.0f));
+    float sum = dot(vec4(a, b, c, d), vec4(1.0f));
     buf_out.weights[dst_offset] = (sum / 4.0f);
-    vec4 probabilities = (vec4(a_1, (a_1 + b), ((a_1 + b) + c), sum) / max(sum, 0.0001f));
+    vec4 probabilities = (vec4(a, (a + b), ((a + b) + c), sum) / max(sum, 0.0001f));
     imageStore(tex_out, ivec2(coord.xy), probabilities);
   }
 }
diff --git a/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.fxc.hlsl
index 220cc92..9312457 100644
--- a/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.fxc.hlsl
@@ -6,95 +6,95 @@
   uint idx : SV_GroupIndex;
 };
 
-float2x2 tint_symbol_18(ByteAddressBuffer buffer, uint offset) {
-  return float2x2(asfloat(buffer.Load2((offset + 0u))), asfloat(buffer.Load2((offset + 8u))));
+float2x2 sb_load_16(uint offset) {
+  return float2x2(asfloat(sb.Load2((offset + 0u))), asfloat(sb.Load2((offset + 8u))));
 }
 
-float2x3 tint_symbol_19(ByteAddressBuffer buffer, uint offset) {
-  return float2x3(asfloat(buffer.Load3((offset + 0u))), asfloat(buffer.Load3((offset + 16u))));
+float2x3 sb_load_17(uint offset) {
+  return float2x3(asfloat(sb.Load3((offset + 0u))), asfloat(sb.Load3((offset + 16u))));
 }
 
-float2x4 tint_symbol_20(ByteAddressBuffer buffer, uint offset) {
-  return float2x4(asfloat(buffer.Load4((offset + 0u))), asfloat(buffer.Load4((offset + 16u))));
+float2x4 sb_load_18(uint offset) {
+  return float2x4(asfloat(sb.Load4((offset + 0u))), asfloat(sb.Load4((offset + 16u))));
 }
 
-float3x2 tint_symbol_21(ByteAddressBuffer buffer, uint offset) {
-  return float3x2(asfloat(buffer.Load2((offset + 0u))), asfloat(buffer.Load2((offset + 8u))), asfloat(buffer.Load2((offset + 16u))));
+float3x2 sb_load_19(uint offset) {
+  return float3x2(asfloat(sb.Load2((offset + 0u))), asfloat(sb.Load2((offset + 8u))), asfloat(sb.Load2((offset + 16u))));
 }
 
-float3x3 tint_symbol_22(ByteAddressBuffer buffer, uint offset) {
-  return float3x3(asfloat(buffer.Load3((offset + 0u))), asfloat(buffer.Load3((offset + 16u))), asfloat(buffer.Load3((offset + 32u))));
+float3x3 sb_load_20(uint offset) {
+  return float3x3(asfloat(sb.Load3((offset + 0u))), asfloat(sb.Load3((offset + 16u))), asfloat(sb.Load3((offset + 32u))));
 }
 
-float3x4 tint_symbol_23(ByteAddressBuffer buffer, uint offset) {
-  return float3x4(asfloat(buffer.Load4((offset + 0u))), asfloat(buffer.Load4((offset + 16u))), asfloat(buffer.Load4((offset + 32u))));
+float3x4 sb_load_21(uint offset) {
+  return float3x4(asfloat(sb.Load4((offset + 0u))), asfloat(sb.Load4((offset + 16u))), asfloat(sb.Load4((offset + 32u))));
 }
 
-float4x2 tint_symbol_24(ByteAddressBuffer buffer, uint offset) {
-  return float4x2(asfloat(buffer.Load2((offset + 0u))), asfloat(buffer.Load2((offset + 8u))), asfloat(buffer.Load2((offset + 16u))), asfloat(buffer.Load2((offset + 24u))));
+float4x2 sb_load_22(uint offset) {
+  return float4x2(asfloat(sb.Load2((offset + 0u))), asfloat(sb.Load2((offset + 8u))), asfloat(sb.Load2((offset + 16u))), asfloat(sb.Load2((offset + 24u))));
 }
 
-float4x3 tint_symbol_25(ByteAddressBuffer buffer, uint offset) {
-  return float4x3(asfloat(buffer.Load3((offset + 0u))), asfloat(buffer.Load3((offset + 16u))), asfloat(buffer.Load3((offset + 32u))), asfloat(buffer.Load3((offset + 48u))));
+float4x3 sb_load_23(uint offset) {
+  return float4x3(asfloat(sb.Load3((offset + 0u))), asfloat(sb.Load3((offset + 16u))), asfloat(sb.Load3((offset + 32u))), asfloat(sb.Load3((offset + 48u))));
 }
 
-float4x4 tint_symbol_26(ByteAddressBuffer buffer, uint offset) {
-  return float4x4(asfloat(buffer.Load4((offset + 0u))), asfloat(buffer.Load4((offset + 16u))), asfloat(buffer.Load4((offset + 32u))), asfloat(buffer.Load4((offset + 48u))));
+float4x4 sb_load_24(uint offset) {
+  return float4x4(asfloat(sb.Load4((offset + 0u))), asfloat(sb.Load4((offset + 16u))), asfloat(sb.Load4((offset + 32u))), asfloat(sb.Load4((offset + 48u))));
 }
 
-matrix<float16_t, 2, 2> tint_symbol_27(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 2, 2>(buffer.Load<vector<float16_t, 2> >((offset + 0u)), buffer.Load<vector<float16_t, 2> >((offset + 4u)));
+matrix<float16_t, 2, 2> sb_load_25(uint offset) {
+  return matrix<float16_t, 2, 2>(sb.Load<vector<float16_t, 2> >((offset + 0u)), sb.Load<vector<float16_t, 2> >((offset + 4u)));
 }
 
-matrix<float16_t, 2, 3> tint_symbol_28(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 2, 3>(buffer.Load<vector<float16_t, 3> >((offset + 0u)), buffer.Load<vector<float16_t, 3> >((offset + 8u)));
+matrix<float16_t, 2, 3> sb_load_26(uint offset) {
+  return matrix<float16_t, 2, 3>(sb.Load<vector<float16_t, 3> >((offset + 0u)), sb.Load<vector<float16_t, 3> >((offset + 8u)));
 }
 
-matrix<float16_t, 2, 4> tint_symbol_29(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 2, 4>(buffer.Load<vector<float16_t, 4> >((offset + 0u)), buffer.Load<vector<float16_t, 4> >((offset + 8u)));
+matrix<float16_t, 2, 4> sb_load_27(uint offset) {
+  return matrix<float16_t, 2, 4>(sb.Load<vector<float16_t, 4> >((offset + 0u)), sb.Load<vector<float16_t, 4> >((offset + 8u)));
 }
 
-matrix<float16_t, 3, 2> tint_symbol_30(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 3, 2>(buffer.Load<vector<float16_t, 2> >((offset + 0u)), buffer.Load<vector<float16_t, 2> >((offset + 4u)), buffer.Load<vector<float16_t, 2> >((offset + 8u)));
+matrix<float16_t, 3, 2> sb_load_28(uint offset) {
+  return matrix<float16_t, 3, 2>(sb.Load<vector<float16_t, 2> >((offset + 0u)), sb.Load<vector<float16_t, 2> >((offset + 4u)), sb.Load<vector<float16_t, 2> >((offset + 8u)));
 }
 
-matrix<float16_t, 3, 3> tint_symbol_31(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 3, 3>(buffer.Load<vector<float16_t, 3> >((offset + 0u)), buffer.Load<vector<float16_t, 3> >((offset + 8u)), buffer.Load<vector<float16_t, 3> >((offset + 16u)));
+matrix<float16_t, 3, 3> sb_load_29(uint offset) {
+  return matrix<float16_t, 3, 3>(sb.Load<vector<float16_t, 3> >((offset + 0u)), sb.Load<vector<float16_t, 3> >((offset + 8u)), sb.Load<vector<float16_t, 3> >((offset + 16u)));
 }
 
-matrix<float16_t, 3, 4> tint_symbol_32(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 3, 4>(buffer.Load<vector<float16_t, 4> >((offset + 0u)), buffer.Load<vector<float16_t, 4> >((offset + 8u)), buffer.Load<vector<float16_t, 4> >((offset + 16u)));
+matrix<float16_t, 3, 4> sb_load_30(uint offset) {
+  return matrix<float16_t, 3, 4>(sb.Load<vector<float16_t, 4> >((offset + 0u)), sb.Load<vector<float16_t, 4> >((offset + 8u)), sb.Load<vector<float16_t, 4> >((offset + 16u)));
 }
 
-matrix<float16_t, 4, 2> tint_symbol_33(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 4, 2>(buffer.Load<vector<float16_t, 2> >((offset + 0u)), buffer.Load<vector<float16_t, 2> >((offset + 4u)), buffer.Load<vector<float16_t, 2> >((offset + 8u)), buffer.Load<vector<float16_t, 2> >((offset + 12u)));
+matrix<float16_t, 4, 2> sb_load_31(uint offset) {
+  return matrix<float16_t, 4, 2>(sb.Load<vector<float16_t, 2> >((offset + 0u)), sb.Load<vector<float16_t, 2> >((offset + 4u)), sb.Load<vector<float16_t, 2> >((offset + 8u)), sb.Load<vector<float16_t, 2> >((offset + 12u)));
 }
 
-matrix<float16_t, 4, 3> tint_symbol_34(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 4, 3>(buffer.Load<vector<float16_t, 3> >((offset + 0u)), buffer.Load<vector<float16_t, 3> >((offset + 8u)), buffer.Load<vector<float16_t, 3> >((offset + 16u)), buffer.Load<vector<float16_t, 3> >((offset + 24u)));
+matrix<float16_t, 4, 3> sb_load_32(uint offset) {
+  return matrix<float16_t, 4, 3>(sb.Load<vector<float16_t, 3> >((offset + 0u)), sb.Load<vector<float16_t, 3> >((offset + 8u)), sb.Load<vector<float16_t, 3> >((offset + 16u)), sb.Load<vector<float16_t, 3> >((offset + 24u)));
 }
 
-matrix<float16_t, 4, 4> tint_symbol_35(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 4, 4>(buffer.Load<vector<float16_t, 4> >((offset + 0u)), buffer.Load<vector<float16_t, 4> >((offset + 8u)), buffer.Load<vector<float16_t, 4> >((offset + 16u)), buffer.Load<vector<float16_t, 4> >((offset + 24u)));
+matrix<float16_t, 4, 4> sb_load_33(uint offset) {
+  return matrix<float16_t, 4, 4>(sb.Load<vector<float16_t, 4> >((offset + 0u)), sb.Load<vector<float16_t, 4> >((offset + 8u)), sb.Load<vector<float16_t, 4> >((offset + 16u)), sb.Load<vector<float16_t, 4> >((offset + 24u)));
 }
 
-typedef float3 tint_symbol_36_ret[2];
-tint_symbol_36_ret tint_symbol_36(ByteAddressBuffer buffer, uint offset) {
+typedef float3 sb_load_34_ret[2];
+sb_load_34_ret sb_load_34(uint offset) {
   float3 arr_1[2] = (float3[2])0;
   {
     for(uint i = 0u; (i < 2u); i = (i + 1u)) {
-      arr_1[i] = asfloat(buffer.Load3((offset + (i * 16u))));
+      arr_1[i] = asfloat(sb.Load3((offset + (i * 16u))));
     }
   }
   return arr_1;
 }
 
-typedef matrix<float16_t, 4, 2> tint_symbol_37_ret[2];
-tint_symbol_37_ret tint_symbol_37(ByteAddressBuffer buffer, uint offset) {
+typedef matrix<float16_t, 4, 2> sb_load_35_ret[2];
+sb_load_35_ret sb_load_35(uint offset) {
   matrix<float16_t, 4, 2> arr_2[2] = (matrix<float16_t, 4, 2>[2])0;
   {
     for(uint i_1 = 0u; (i_1 < 2u); i_1 = (i_1 + 1u)) {
-      arr_2[i_1] = tint_symbol_33(buffer, (offset + (i_1 * 16u)));
+      arr_2[i_1] = sb_load_31((offset + (i_1 * 16u)));
     }
   }
   return arr_2;
@@ -117,26 +117,26 @@
   const int4 vec4_i32 = asint(sb.Load4(((800u * idx) + 128u)));
   const uint4 vec4_u32 = sb.Load4(((800u * idx) + 144u));
   const vector<float16_t, 4> vec4_f16 = sb.Load<vector<float16_t, 4> >(((800u * idx) + 160u));
-  const float2x2 mat2x2_f32 = tint_symbol_18(sb, ((800u * idx) + 168u));
-  const float2x3 mat2x3_f32 = tint_symbol_19(sb, ((800u * idx) + 192u));
-  const float2x4 mat2x4_f32 = tint_symbol_20(sb, ((800u * idx) + 224u));
-  const float3x2 mat3x2_f32 = tint_symbol_21(sb, ((800u * idx) + 256u));
-  const float3x3 mat3x3_f32 = tint_symbol_22(sb, ((800u * idx) + 288u));
-  const float3x4 mat3x4_f32 = tint_symbol_23(sb, ((800u * idx) + 336u));
-  const float4x2 mat4x2_f32 = tint_symbol_24(sb, ((800u * idx) + 384u));
-  const float4x3 mat4x3_f32 = tint_symbol_25(sb, ((800u * idx) + 416u));
-  const float4x4 mat4x4_f32 = tint_symbol_26(sb, ((800u * idx) + 480u));
-  const matrix<float16_t, 2, 2> mat2x2_f16 = tint_symbol_27(sb, ((800u * idx) + 544u));
-  const matrix<float16_t, 2, 3> mat2x3_f16 = tint_symbol_28(sb, ((800u * idx) + 552u));
-  const matrix<float16_t, 2, 4> mat2x4_f16 = tint_symbol_29(sb, ((800u * idx) + 568u));
-  const matrix<float16_t, 3, 2> mat3x2_f16 = tint_symbol_30(sb, ((800u * idx) + 584u));
-  const matrix<float16_t, 3, 3> mat3x3_f16 = tint_symbol_31(sb, ((800u * idx) + 600u));
-  const matrix<float16_t, 3, 4> mat3x4_f16 = tint_symbol_32(sb, ((800u * idx) + 624u));
-  const matrix<float16_t, 4, 2> mat4x2_f16 = tint_symbol_33(sb, ((800u * idx) + 648u));
-  const matrix<float16_t, 4, 3> mat4x3_f16 = tint_symbol_34(sb, ((800u * idx) + 664u));
-  const matrix<float16_t, 4, 4> mat4x4_f16 = tint_symbol_35(sb, ((800u * idx) + 696u));
-  const float3 arr2_vec3_f32[2] = tint_symbol_36(sb, ((800u * idx) + 736u));
-  const matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = tint_symbol_37(sb, ((800u * idx) + 768u));
+  const float2x2 mat2x2_f32 = sb_load_16(((800u * idx) + 168u));
+  const float2x3 mat2x3_f32 = sb_load_17(((800u * idx) + 192u));
+  const float2x4 mat2x4_f32 = sb_load_18(((800u * idx) + 224u));
+  const float3x2 mat3x2_f32 = sb_load_19(((800u * idx) + 256u));
+  const float3x3 mat3x3_f32 = sb_load_20(((800u * idx) + 288u));
+  const float3x4 mat3x4_f32 = sb_load_21(((800u * idx) + 336u));
+  const float4x2 mat4x2_f32 = sb_load_22(((800u * idx) + 384u));
+  const float4x3 mat4x3_f32 = sb_load_23(((800u * idx) + 416u));
+  const float4x4 mat4x4_f32 = sb_load_24(((800u * idx) + 480u));
+  const matrix<float16_t, 2, 2> mat2x2_f16 = sb_load_25(((800u * idx) + 544u));
+  const matrix<float16_t, 2, 3> mat2x3_f16 = sb_load_26(((800u * idx) + 552u));
+  const matrix<float16_t, 2, 4> mat2x4_f16 = sb_load_27(((800u * idx) + 568u));
+  const matrix<float16_t, 3, 2> mat3x2_f16 = sb_load_28(((800u * idx) + 584u));
+  const matrix<float16_t, 3, 3> mat3x3_f16 = sb_load_29(((800u * idx) + 600u));
+  const matrix<float16_t, 3, 4> mat3x4_f16 = sb_load_30(((800u * idx) + 624u));
+  const matrix<float16_t, 4, 2> mat4x2_f16 = sb_load_31(((800u * idx) + 648u));
+  const matrix<float16_t, 4, 3> mat4x3_f16 = sb_load_32(((800u * idx) + 664u));
+  const matrix<float16_t, 4, 4> mat4x4_f16 = sb_load_33(((800u * idx) + 696u));
+  const float3 arr2_vec3_f32[2] = sb_load_34(((800u * idx) + 736u));
+  const matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = sb_load_35(((800u * idx) + 768u));
 }
 
 [numthreads(1, 1, 1)]
@@ -144,6 +144,3 @@
   main_inner(tint_symbol.idx);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000018A2D5DB890(43,8-16): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.fxc.hlsl
index 8bd57ef..b157721 100644
--- a/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.fxc.hlsl
@@ -6,128 +6,128 @@
   uint idx : SV_GroupIndex;
 };
 
-void tint_symbol_18(RWByteAddressBuffer buffer, uint offset, float2x2 value) {
-  buffer.Store2((offset + 0u), asuint(value[0u]));
-  buffer.Store2((offset + 8u), asuint(value[1u]));
+void sb_store_16(uint offset, float2x2 value) {
+  sb.Store2((offset + 0u), asuint(value[0u]));
+  sb.Store2((offset + 8u), asuint(value[1u]));
 }
 
-void tint_symbol_19(RWByteAddressBuffer buffer, uint offset, float2x3 value) {
-  buffer.Store3((offset + 0u), asuint(value[0u]));
-  buffer.Store3((offset + 16u), asuint(value[1u]));
+void sb_store_17(uint offset, float2x3 value) {
+  sb.Store3((offset + 0u), asuint(value[0u]));
+  sb.Store3((offset + 16u), asuint(value[1u]));
 }
 
-void tint_symbol_20(RWByteAddressBuffer buffer, uint offset, float2x4 value) {
-  buffer.Store4((offset + 0u), asuint(value[0u]));
-  buffer.Store4((offset + 16u), asuint(value[1u]));
+void sb_store_18(uint offset, float2x4 value) {
+  sb.Store4((offset + 0u), asuint(value[0u]));
+  sb.Store4((offset + 16u), asuint(value[1u]));
 }
 
-void tint_symbol_21(RWByteAddressBuffer buffer, uint offset, float3x2 value) {
-  buffer.Store2((offset + 0u), asuint(value[0u]));
-  buffer.Store2((offset + 8u), asuint(value[1u]));
-  buffer.Store2((offset + 16u), asuint(value[2u]));
+void sb_store_19(uint offset, float3x2 value) {
+  sb.Store2((offset + 0u), asuint(value[0u]));
+  sb.Store2((offset + 8u), asuint(value[1u]));
+  sb.Store2((offset + 16u), asuint(value[2u]));
 }
 
-void tint_symbol_22(RWByteAddressBuffer buffer, uint offset, float3x3 value) {
-  buffer.Store3((offset + 0u), asuint(value[0u]));
-  buffer.Store3((offset + 16u), asuint(value[1u]));
-  buffer.Store3((offset + 32u), asuint(value[2u]));
+void sb_store_20(uint offset, float3x3 value) {
+  sb.Store3((offset + 0u), asuint(value[0u]));
+  sb.Store3((offset + 16u), asuint(value[1u]));
+  sb.Store3((offset + 32u), asuint(value[2u]));
 }
 
-void tint_symbol_23(RWByteAddressBuffer buffer, uint offset, float3x4 value) {
-  buffer.Store4((offset + 0u), asuint(value[0u]));
-  buffer.Store4((offset + 16u), asuint(value[1u]));
-  buffer.Store4((offset + 32u), asuint(value[2u]));
+void sb_store_21(uint offset, float3x4 value) {
+  sb.Store4((offset + 0u), asuint(value[0u]));
+  sb.Store4((offset + 16u), asuint(value[1u]));
+  sb.Store4((offset + 32u), asuint(value[2u]));
 }
 
-void tint_symbol_24(RWByteAddressBuffer buffer, uint offset, float4x2 value) {
-  buffer.Store2((offset + 0u), asuint(value[0u]));
-  buffer.Store2((offset + 8u), asuint(value[1u]));
-  buffer.Store2((offset + 16u), asuint(value[2u]));
-  buffer.Store2((offset + 24u), asuint(value[3u]));
+void sb_store_22(uint offset, float4x2 value) {
+  sb.Store2((offset + 0u), asuint(value[0u]));
+  sb.Store2((offset + 8u), asuint(value[1u]));
+  sb.Store2((offset + 16u), asuint(value[2u]));
+  sb.Store2((offset + 24u), asuint(value[3u]));
 }
 
-void tint_symbol_25(RWByteAddressBuffer buffer, uint offset, float4x3 value) {
-  buffer.Store3((offset + 0u), asuint(value[0u]));
-  buffer.Store3((offset + 16u), asuint(value[1u]));
-  buffer.Store3((offset + 32u), asuint(value[2u]));
-  buffer.Store3((offset + 48u), asuint(value[3u]));
+void sb_store_23(uint offset, float4x3 value) {
+  sb.Store3((offset + 0u), asuint(value[0u]));
+  sb.Store3((offset + 16u), asuint(value[1u]));
+  sb.Store3((offset + 32u), asuint(value[2u]));
+  sb.Store3((offset + 48u), asuint(value[3u]));
 }
 
-void tint_symbol_26(RWByteAddressBuffer buffer, uint offset, float4x4 value) {
-  buffer.Store4((offset + 0u), asuint(value[0u]));
-  buffer.Store4((offset + 16u), asuint(value[1u]));
-  buffer.Store4((offset + 32u), asuint(value[2u]));
-  buffer.Store4((offset + 48u), asuint(value[3u]));
+void sb_store_24(uint offset, float4x4 value) {
+  sb.Store4((offset + 0u), asuint(value[0u]));
+  sb.Store4((offset + 16u), asuint(value[1u]));
+  sb.Store4((offset + 32u), asuint(value[2u]));
+  sb.Store4((offset + 48u), asuint(value[3u]));
 }
 
-void tint_symbol_27(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+void sb_store_25(uint offset, matrix<float16_t, 2, 2> value) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
 }
 
-void tint_symbol_28(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+void sb_store_26(uint offset, matrix<float16_t, 2, 3> value) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
 }
 
-void tint_symbol_29(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+void sb_store_27(uint offset, matrix<float16_t, 2, 4> value) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
 }
 
-void tint_symbol_30(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 3, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
+void sb_store_28(uint offset, matrix<float16_t, 3, 2> value) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+  sb.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
 }
 
-void tint_symbol_31(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 3, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
+void sb_store_29(uint offset, matrix<float16_t, 3, 3> value) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+  sb.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
 }
 
-void tint_symbol_32(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 3, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
+void sb_store_30(uint offset, matrix<float16_t, 3, 4> value) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+  sb.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
 }
 
-void tint_symbol_33(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 12u), value[3u]);
+void sb_store_31(uint offset, matrix<float16_t, 4, 2> value) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+  sb.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
+  sb.Store<vector<float16_t, 2> >((offset + 12u), value[3u]);
 }
 
-void tint_symbol_34(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 24u), value[3u]);
+void sb_store_32(uint offset, matrix<float16_t, 4, 3> value) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+  sb.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
+  sb.Store<vector<float16_t, 3> >((offset + 24u), value[3u]);
 }
 
-void tint_symbol_35(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 24u), value[3u]);
+void sb_store_33(uint offset, matrix<float16_t, 4, 4> value) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+  sb.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
+  sb.Store<vector<float16_t, 4> >((offset + 24u), value[3u]);
 }
 
-void tint_symbol_36(RWByteAddressBuffer buffer, uint offset, float3 value[2]) {
-  float3 array[2] = value;
+void sb_store_34(uint offset, float3 value[2]) {
+  float3 array_1[2] = value;
   {
     for(uint i = 0u; (i < 2u); i = (i + 1u)) {
-      buffer.Store3((offset + (i * 16u)), asuint(array[i]));
+      sb.Store3((offset + (i * 16u)), asuint(array_1[i]));
     }
   }
 }
 
-void tint_symbol_37(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 2> value[2]) {
-  matrix<float16_t, 4, 2> array_1[2] = value;
+void sb_store_35(uint offset, matrix<float16_t, 4, 2> value[2]) {
+  matrix<float16_t, 4, 2> array_2[2] = value;
   {
     for(uint i_1 = 0u; (i_1 < 2u); i_1 = (i_1 + 1u)) {
-      tint_symbol_33(buffer, (offset + (i_1 * 16u)), array_1[i_1]);
+      sb_store_31((offset + (i_1 * 16u)), array_2[i_1]);
     }
   }
 }
@@ -149,28 +149,28 @@
   sb.Store4(((800u * idx) + 128u), asuint((0).xxxx));
   sb.Store4(((800u * idx) + 144u), asuint((0u).xxxx));
   sb.Store<vector<float16_t, 4> >(((800u * idx) + 160u), (float16_t(0.0h)).xxxx);
-  tint_symbol_18(sb, ((800u * idx) + 168u), float2x2((0.0f).xx, (0.0f).xx));
-  tint_symbol_19(sb, ((800u * idx) + 192u), float2x3((0.0f).xxx, (0.0f).xxx));
-  tint_symbol_20(sb, ((800u * idx) + 224u), float2x4((0.0f).xxxx, (0.0f).xxxx));
-  tint_symbol_21(sb, ((800u * idx) + 256u), float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx));
-  tint_symbol_22(sb, ((800u * idx) + 288u), float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
-  tint_symbol_23(sb, ((800u * idx) + 336u), float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
-  tint_symbol_24(sb, ((800u * idx) + 384u), float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx));
-  tint_symbol_25(sb, ((800u * idx) + 416u), float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
-  tint_symbol_26(sb, ((800u * idx) + 480u), float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
-  tint_symbol_27(sb, ((800u * idx) + 544u), matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
-  tint_symbol_28(sb, ((800u * idx) + 552u), matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
-  tint_symbol_29(sb, ((800u * idx) + 568u), matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
-  tint_symbol_30(sb, ((800u * idx) + 584u), matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
-  tint_symbol_31(sb, ((800u * idx) + 600u), matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
-  tint_symbol_32(sb, ((800u * idx) + 624u), matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
-  tint_symbol_33(sb, ((800u * idx) + 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));
-  tint_symbol_34(sb, ((800u * idx) + 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));
-  tint_symbol_35(sb, ((800u * idx) + 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));
-  const float3 tint_symbol_38[2] = (float3[2])0;
-  tint_symbol_36(sb, ((800u * idx) + 736u), tint_symbol_38);
-  const matrix<float16_t, 4, 2> tint_symbol_39[2] = (matrix<float16_t, 4, 2>[2])0;
-  tint_symbol_37(sb, ((800u * idx) + 768u), tint_symbol_39);
+  sb_store_16(((800u * idx) + 168u), float2x2((0.0f).xx, (0.0f).xx));
+  sb_store_17(((800u * idx) + 192u), float2x3((0.0f).xxx, (0.0f).xxx));
+  sb_store_18(((800u * idx) + 224u), float2x4((0.0f).xxxx, (0.0f).xxxx));
+  sb_store_19(((800u * idx) + 256u), float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx));
+  sb_store_20(((800u * idx) + 288u), float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+  sb_store_21(((800u * idx) + 336u), float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  sb_store_22(((800u * idx) + 384u), float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx));
+  sb_store_23(((800u * idx) + 416u), float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+  sb_store_24(((800u * idx) + 480u), float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  sb_store_25(((800u * idx) + 544u), matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+  sb_store_26(((800u * idx) + 552u), matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+  sb_store_27(((800u * idx) + 568u), matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
+  sb_store_28(((800u * idx) + 584u), matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+  sb_store_29(((800u * idx) + 600u), matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+  sb_store_30(((800u * idx) + 624u), matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
+  sb_store_31(((800u * idx) + 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));
+  sb_store_32(((800u * idx) + 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));
+  sb_store_33(((800u * idx) + 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));
+  const float3 tint_symbol_2[2] = (float3[2])0;
+  sb_store_34(((800u * idx) + 736u), tint_symbol_2);
+  const matrix<float16_t, 4, 2> tint_symbol_3[2] = (matrix<float16_t, 4, 2>[2])0;
+  sb_store_35(((800u * idx) + 768u), tint_symbol_3);
 }
 
 [numthreads(1, 1, 1)]
@@ -178,7 +178,3 @@
   main_inner(tint_symbol.idx);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002B00914B0D0(61,69-77): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002B00914B0D0(62,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.fxc.hlsl
index ae92995..77f6c0e 100644
--- a/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.fxc.hlsl
@@ -8,111 +8,111 @@
 
 ByteAddressBuffer sb : register(t0, space0);
 
-float2x2 tint_symbol_16(ByteAddressBuffer buffer, uint offset) {
-  return float2x2(asfloat(buffer.Load2((offset + 0u))), asfloat(buffer.Load2((offset + 8u))));
+float2x2 sb_load_16(uint offset) {
+  return float2x2(asfloat(sb.Load2((offset + 0u))), asfloat(sb.Load2((offset + 8u))));
 }
 
-float2x3 tint_symbol_17(ByteAddressBuffer buffer, uint offset) {
-  return float2x3(asfloat(buffer.Load3((offset + 0u))), asfloat(buffer.Load3((offset + 16u))));
+float2x3 sb_load_17(uint offset) {
+  return float2x3(asfloat(sb.Load3((offset + 0u))), asfloat(sb.Load3((offset + 16u))));
 }
 
-float2x4 tint_symbol_18(ByteAddressBuffer buffer, uint offset) {
-  return float2x4(asfloat(buffer.Load4((offset + 0u))), asfloat(buffer.Load4((offset + 16u))));
+float2x4 sb_load_18(uint offset) {
+  return float2x4(asfloat(sb.Load4((offset + 0u))), asfloat(sb.Load4((offset + 16u))));
 }
 
-float3x2 tint_symbol_19(ByteAddressBuffer buffer, uint offset) {
-  return float3x2(asfloat(buffer.Load2((offset + 0u))), asfloat(buffer.Load2((offset + 8u))), asfloat(buffer.Load2((offset + 16u))));
+float3x2 sb_load_19(uint offset) {
+  return float3x2(asfloat(sb.Load2((offset + 0u))), asfloat(sb.Load2((offset + 8u))), asfloat(sb.Load2((offset + 16u))));
 }
 
-float3x3 tint_symbol_20(ByteAddressBuffer buffer, uint offset) {
-  return float3x3(asfloat(buffer.Load3((offset + 0u))), asfloat(buffer.Load3((offset + 16u))), asfloat(buffer.Load3((offset + 32u))));
+float3x3 sb_load_20(uint offset) {
+  return float3x3(asfloat(sb.Load3((offset + 0u))), asfloat(sb.Load3((offset + 16u))), asfloat(sb.Load3((offset + 32u))));
 }
 
-float3x4 tint_symbol_21(ByteAddressBuffer buffer, uint offset) {
-  return float3x4(asfloat(buffer.Load4((offset + 0u))), asfloat(buffer.Load4((offset + 16u))), asfloat(buffer.Load4((offset + 32u))));
+float3x4 sb_load_21(uint offset) {
+  return float3x4(asfloat(sb.Load4((offset + 0u))), asfloat(sb.Load4((offset + 16u))), asfloat(sb.Load4((offset + 32u))));
 }
 
-float4x2 tint_symbol_22(ByteAddressBuffer buffer, uint offset) {
-  return float4x2(asfloat(buffer.Load2((offset + 0u))), asfloat(buffer.Load2((offset + 8u))), asfloat(buffer.Load2((offset + 16u))), asfloat(buffer.Load2((offset + 24u))));
+float4x2 sb_load_22(uint offset) {
+  return float4x2(asfloat(sb.Load2((offset + 0u))), asfloat(sb.Load2((offset + 8u))), asfloat(sb.Load2((offset + 16u))), asfloat(sb.Load2((offset + 24u))));
 }
 
-float4x3 tint_symbol_23(ByteAddressBuffer buffer, uint offset) {
-  return float4x3(asfloat(buffer.Load3((offset + 0u))), asfloat(buffer.Load3((offset + 16u))), asfloat(buffer.Load3((offset + 32u))), asfloat(buffer.Load3((offset + 48u))));
+float4x3 sb_load_23(uint offset) {
+  return float4x3(asfloat(sb.Load3((offset + 0u))), asfloat(sb.Load3((offset + 16u))), asfloat(sb.Load3((offset + 32u))), asfloat(sb.Load3((offset + 48u))));
 }
 
-float4x4 tint_symbol_24(ByteAddressBuffer buffer, uint offset) {
-  return float4x4(asfloat(buffer.Load4((offset + 0u))), asfloat(buffer.Load4((offset + 16u))), asfloat(buffer.Load4((offset + 32u))), asfloat(buffer.Load4((offset + 48u))));
+float4x4 sb_load_24(uint offset) {
+  return float4x4(asfloat(sb.Load4((offset + 0u))), asfloat(sb.Load4((offset + 16u))), asfloat(sb.Load4((offset + 32u))), asfloat(sb.Load4((offset + 48u))));
 }
 
-matrix<float16_t, 2, 2> tint_symbol_25(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 2, 2>(buffer.Load<vector<float16_t, 2> >((offset + 0u)), buffer.Load<vector<float16_t, 2> >((offset + 4u)));
+matrix<float16_t, 2, 2> sb_load_25(uint offset) {
+  return matrix<float16_t, 2, 2>(sb.Load<vector<float16_t, 2> >((offset + 0u)), sb.Load<vector<float16_t, 2> >((offset + 4u)));
 }
 
-matrix<float16_t, 2, 3> tint_symbol_26(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 2, 3>(buffer.Load<vector<float16_t, 3> >((offset + 0u)), buffer.Load<vector<float16_t, 3> >((offset + 8u)));
+matrix<float16_t, 2, 3> sb_load_26(uint offset) {
+  return matrix<float16_t, 2, 3>(sb.Load<vector<float16_t, 3> >((offset + 0u)), sb.Load<vector<float16_t, 3> >((offset + 8u)));
 }
 
-matrix<float16_t, 2, 4> tint_symbol_27(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 2, 4>(buffer.Load<vector<float16_t, 4> >((offset + 0u)), buffer.Load<vector<float16_t, 4> >((offset + 8u)));
+matrix<float16_t, 2, 4> sb_load_27(uint offset) {
+  return matrix<float16_t, 2, 4>(sb.Load<vector<float16_t, 4> >((offset + 0u)), sb.Load<vector<float16_t, 4> >((offset + 8u)));
 }
 
-matrix<float16_t, 3, 2> tint_symbol_28(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 3, 2>(buffer.Load<vector<float16_t, 2> >((offset + 0u)), buffer.Load<vector<float16_t, 2> >((offset + 4u)), buffer.Load<vector<float16_t, 2> >((offset + 8u)));
+matrix<float16_t, 3, 2> sb_load_28(uint offset) {
+  return matrix<float16_t, 3, 2>(sb.Load<vector<float16_t, 2> >((offset + 0u)), sb.Load<vector<float16_t, 2> >((offset + 4u)), sb.Load<vector<float16_t, 2> >((offset + 8u)));
 }
 
-matrix<float16_t, 3, 3> tint_symbol_29(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 3, 3>(buffer.Load<vector<float16_t, 3> >((offset + 0u)), buffer.Load<vector<float16_t, 3> >((offset + 8u)), buffer.Load<vector<float16_t, 3> >((offset + 16u)));
+matrix<float16_t, 3, 3> sb_load_29(uint offset) {
+  return matrix<float16_t, 3, 3>(sb.Load<vector<float16_t, 3> >((offset + 0u)), sb.Load<vector<float16_t, 3> >((offset + 8u)), sb.Load<vector<float16_t, 3> >((offset + 16u)));
 }
 
-matrix<float16_t, 3, 4> tint_symbol_30(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 3, 4>(buffer.Load<vector<float16_t, 4> >((offset + 0u)), buffer.Load<vector<float16_t, 4> >((offset + 8u)), buffer.Load<vector<float16_t, 4> >((offset + 16u)));
+matrix<float16_t, 3, 4> sb_load_30(uint offset) {
+  return matrix<float16_t, 3, 4>(sb.Load<vector<float16_t, 4> >((offset + 0u)), sb.Load<vector<float16_t, 4> >((offset + 8u)), sb.Load<vector<float16_t, 4> >((offset + 16u)));
 }
 
-matrix<float16_t, 4, 2> tint_symbol_31(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 4, 2>(buffer.Load<vector<float16_t, 2> >((offset + 0u)), buffer.Load<vector<float16_t, 2> >((offset + 4u)), buffer.Load<vector<float16_t, 2> >((offset + 8u)), buffer.Load<vector<float16_t, 2> >((offset + 12u)));
+matrix<float16_t, 4, 2> sb_load_31(uint offset) {
+  return matrix<float16_t, 4, 2>(sb.Load<vector<float16_t, 2> >((offset + 0u)), sb.Load<vector<float16_t, 2> >((offset + 4u)), sb.Load<vector<float16_t, 2> >((offset + 8u)), sb.Load<vector<float16_t, 2> >((offset + 12u)));
 }
 
-matrix<float16_t, 4, 3> tint_symbol_32(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 4, 3>(buffer.Load<vector<float16_t, 3> >((offset + 0u)), buffer.Load<vector<float16_t, 3> >((offset + 8u)), buffer.Load<vector<float16_t, 3> >((offset + 16u)), buffer.Load<vector<float16_t, 3> >((offset + 24u)));
+matrix<float16_t, 4, 3> sb_load_32(uint offset) {
+  return matrix<float16_t, 4, 3>(sb.Load<vector<float16_t, 3> >((offset + 0u)), sb.Load<vector<float16_t, 3> >((offset + 8u)), sb.Load<vector<float16_t, 3> >((offset + 16u)), sb.Load<vector<float16_t, 3> >((offset + 24u)));
 }
 
-matrix<float16_t, 4, 4> tint_symbol_33(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 4, 4>(buffer.Load<vector<float16_t, 4> >((offset + 0u)), buffer.Load<vector<float16_t, 4> >((offset + 8u)), buffer.Load<vector<float16_t, 4> >((offset + 16u)), buffer.Load<vector<float16_t, 4> >((offset + 24u)));
+matrix<float16_t, 4, 4> sb_load_33(uint offset) {
+  return matrix<float16_t, 4, 4>(sb.Load<vector<float16_t, 4> >((offset + 0u)), sb.Load<vector<float16_t, 4> >((offset + 8u)), sb.Load<vector<float16_t, 4> >((offset + 16u)), sb.Load<vector<float16_t, 4> >((offset + 24u)));
 }
 
-typedef float3 tint_symbol_34_ret[2];
-tint_symbol_34_ret tint_symbol_34(ByteAddressBuffer buffer, uint offset) {
+typedef float3 sb_load_34_ret[2];
+sb_load_34_ret sb_load_34(uint offset) {
   float3 arr[2] = (float3[2])0;
   {
     for(uint i = 0u; (i < 2u); i = (i + 1u)) {
-      arr[i] = asfloat(buffer.Load3((offset + (i * 16u))));
+      arr[i] = asfloat(sb.Load3((offset + (i * 16u))));
     }
   }
   return arr;
 }
 
-typedef matrix<float16_t, 4, 2> tint_symbol_35_ret[2];
-tint_symbol_35_ret tint_symbol_35(ByteAddressBuffer buffer, uint offset) {
+typedef matrix<float16_t, 4, 2> sb_load_35_ret[2];
+sb_load_35_ret sb_load_35(uint offset) {
   matrix<float16_t, 4, 2> arr_1[2] = (matrix<float16_t, 4, 2>[2])0;
   {
     for(uint i_1 = 0u; (i_1 < 2u); i_1 = (i_1 + 1u)) {
-      arr_1[i_1] = tint_symbol_31(buffer, (offset + (i_1 * 16u)));
+      arr_1[i_1] = sb_load_31((offset + (i_1 * 16u)));
     }
   }
   return arr_1;
 }
 
-Inner tint_symbol_36(ByteAddressBuffer buffer, uint offset) {
-  const Inner tint_symbol_38 = {asint(buffer.Load((offset + 0u))), asfloat(buffer.Load((offset + 4u))), buffer.Load<float16_t>((offset + 8u))};
-  return tint_symbol_38;
+Inner sb_load_36(uint offset) {
+  const Inner tint_symbol = {asint(sb.Load((offset + 0u))), asfloat(sb.Load((offset + 4u))), sb.Load<float16_t>((offset + 8u))};
+  return tint_symbol;
 }
 
-typedef Inner tint_symbol_37_ret[4];
-tint_symbol_37_ret tint_symbol_37(ByteAddressBuffer buffer, uint offset) {
+typedef Inner sb_load_37_ret[4];
+sb_load_37_ret sb_load_37(uint offset) {
   Inner arr_2[4] = (Inner[4])0;
   {
     for(uint i_2 = 0u; (i_2 < 4u); i_2 = (i_2 + 1u)) {
-      arr_2[i_2] = tint_symbol_36(buffer, (offset + (i_2 * 12u)));
+      arr_2[i_2] = sb_load_36((offset + (i_2 * 12u)));
     }
   }
   return arr_2;
@@ -136,30 +136,27 @@
   const int4 vec4_i32 = asint(sb.Load4(128u));
   const uint4 vec4_u32 = sb.Load4(144u);
   const vector<float16_t, 4> vec4_f16 = sb.Load<vector<float16_t, 4> >(160u);
-  const float2x2 mat2x2_f32 = tint_symbol_16(sb, 168u);
-  const float2x3 mat2x3_f32 = tint_symbol_17(sb, 192u);
-  const float2x4 mat2x4_f32 = tint_symbol_18(sb, 224u);
-  const float3x2 mat3x2_f32 = tint_symbol_19(sb, 256u);
-  const float3x3 mat3x3_f32 = tint_symbol_20(sb, 288u);
-  const float3x4 mat3x4_f32 = tint_symbol_21(sb, 336u);
-  const float4x2 mat4x2_f32 = tint_symbol_22(sb, 384u);
-  const float4x3 mat4x3_f32 = tint_symbol_23(sb, 416u);
-  const float4x4 mat4x4_f32 = tint_symbol_24(sb, 480u);
-  const matrix<float16_t, 2, 2> mat2x2_f16 = tint_symbol_25(sb, 544u);
-  const matrix<float16_t, 2, 3> mat2x3_f16 = tint_symbol_26(sb, 552u);
-  const matrix<float16_t, 2, 4> mat2x4_f16 = tint_symbol_27(sb, 568u);
-  const matrix<float16_t, 3, 2> mat3x2_f16 = tint_symbol_28(sb, 584u);
-  const matrix<float16_t, 3, 3> mat3x3_f16 = tint_symbol_29(sb, 600u);
-  const matrix<float16_t, 3, 4> mat3x4_f16 = tint_symbol_30(sb, 624u);
-  const matrix<float16_t, 4, 2> mat4x2_f16 = tint_symbol_31(sb, 648u);
-  const matrix<float16_t, 4, 3> mat4x3_f16 = tint_symbol_32(sb, 664u);
-  const matrix<float16_t, 4, 4> mat4x4_f16 = tint_symbol_33(sb, 696u);
-  const float3 arr2_vec3_f32[2] = tint_symbol_34(sb, 736u);
-  const matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = tint_symbol_35(sb, 768u);
-  const Inner struct_inner = tint_symbol_36(sb, 800u);
-  const Inner array_struct_inner[4] = tint_symbol_37(sb, 812u);
+  const float2x2 mat2x2_f32 = sb_load_16(168u);
+  const float2x3 mat2x3_f32 = sb_load_17(192u);
+  const float2x4 mat2x4_f32 = sb_load_18(224u);
+  const float3x2 mat3x2_f32 = sb_load_19(256u);
+  const float3x3 mat3x3_f32 = sb_load_20(288u);
+  const float3x4 mat3x4_f32 = sb_load_21(336u);
+  const float4x2 mat4x2_f32 = sb_load_22(384u);
+  const float4x3 mat4x3_f32 = sb_load_23(416u);
+  const float4x4 mat4x4_f32 = sb_load_24(480u);
+  const matrix<float16_t, 2, 2> mat2x2_f16 = sb_load_25(544u);
+  const matrix<float16_t, 2, 3> mat2x3_f16 = sb_load_26(552u);
+  const matrix<float16_t, 2, 4> mat2x4_f16 = sb_load_27(568u);
+  const matrix<float16_t, 3, 2> mat3x2_f16 = sb_load_28(584u);
+  const matrix<float16_t, 3, 3> mat3x3_f16 = sb_load_29(600u);
+  const matrix<float16_t, 3, 4> mat3x4_f16 = sb_load_30(624u);
+  const matrix<float16_t, 4, 2> mat4x2_f16 = sb_load_31(648u);
+  const matrix<float16_t, 4, 3> mat4x3_f16 = sb_load_32(664u);
+  const matrix<float16_t, 4, 4> mat4x4_f16 = sb_load_33(696u);
+  const float3 arr2_vec3_f32[2] = sb_load_34(736u);
+  const matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = sb_load_35(768u);
+  const Inner struct_inner = sb_load_36(800u);
+  const Inner array_struct_inner[4] = sb_load_37(812u);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002348228CC10(4,3-11): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.fxc.hlsl
index f54b4e4..2ef3886 100644
--- a/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.fxc.hlsl
@@ -8,143 +8,143 @@
 
 RWByteAddressBuffer sb : register(u0, space0);
 
-void tint_symbol_16(RWByteAddressBuffer buffer, uint offset, float2x2 value) {
-  buffer.Store2((offset + 0u), asuint(value[0u]));
-  buffer.Store2((offset + 8u), asuint(value[1u]));
+void sb_store_16(uint offset, float2x2 value) {
+  sb.Store2((offset + 0u), asuint(value[0u]));
+  sb.Store2((offset + 8u), asuint(value[1u]));
 }
 
-void tint_symbol_17(RWByteAddressBuffer buffer, uint offset, float2x3 value) {
-  buffer.Store3((offset + 0u), asuint(value[0u]));
-  buffer.Store3((offset + 16u), asuint(value[1u]));
+void sb_store_17(uint offset, float2x3 value) {
+  sb.Store3((offset + 0u), asuint(value[0u]));
+  sb.Store3((offset + 16u), asuint(value[1u]));
 }
 
-void tint_symbol_18(RWByteAddressBuffer buffer, uint offset, float2x4 value) {
-  buffer.Store4((offset + 0u), asuint(value[0u]));
-  buffer.Store4((offset + 16u), asuint(value[1u]));
+void sb_store_18(uint offset, float2x4 value) {
+  sb.Store4((offset + 0u), asuint(value[0u]));
+  sb.Store4((offset + 16u), asuint(value[1u]));
 }
 
-void tint_symbol_19(RWByteAddressBuffer buffer, uint offset, float3x2 value) {
-  buffer.Store2((offset + 0u), asuint(value[0u]));
-  buffer.Store2((offset + 8u), asuint(value[1u]));
-  buffer.Store2((offset + 16u), asuint(value[2u]));
+void sb_store_19(uint offset, float3x2 value) {
+  sb.Store2((offset + 0u), asuint(value[0u]));
+  sb.Store2((offset + 8u), asuint(value[1u]));
+  sb.Store2((offset + 16u), asuint(value[2u]));
 }
 
-void tint_symbol_20(RWByteAddressBuffer buffer, uint offset, float3x3 value) {
-  buffer.Store3((offset + 0u), asuint(value[0u]));
-  buffer.Store3((offset + 16u), asuint(value[1u]));
-  buffer.Store3((offset + 32u), asuint(value[2u]));
+void sb_store_20(uint offset, float3x3 value) {
+  sb.Store3((offset + 0u), asuint(value[0u]));
+  sb.Store3((offset + 16u), asuint(value[1u]));
+  sb.Store3((offset + 32u), asuint(value[2u]));
 }
 
-void tint_symbol_21(RWByteAddressBuffer buffer, uint offset, float3x4 value) {
-  buffer.Store4((offset + 0u), asuint(value[0u]));
-  buffer.Store4((offset + 16u), asuint(value[1u]));
-  buffer.Store4((offset + 32u), asuint(value[2u]));
+void sb_store_21(uint offset, float3x4 value) {
+  sb.Store4((offset + 0u), asuint(value[0u]));
+  sb.Store4((offset + 16u), asuint(value[1u]));
+  sb.Store4((offset + 32u), asuint(value[2u]));
 }
 
-void tint_symbol_22(RWByteAddressBuffer buffer, uint offset, float4x2 value) {
-  buffer.Store2((offset + 0u), asuint(value[0u]));
-  buffer.Store2((offset + 8u), asuint(value[1u]));
-  buffer.Store2((offset + 16u), asuint(value[2u]));
-  buffer.Store2((offset + 24u), asuint(value[3u]));
+void sb_store_22(uint offset, float4x2 value) {
+  sb.Store2((offset + 0u), asuint(value[0u]));
+  sb.Store2((offset + 8u), asuint(value[1u]));
+  sb.Store2((offset + 16u), asuint(value[2u]));
+  sb.Store2((offset + 24u), asuint(value[3u]));
 }
 
-void tint_symbol_23(RWByteAddressBuffer buffer, uint offset, float4x3 value) {
-  buffer.Store3((offset + 0u), asuint(value[0u]));
-  buffer.Store3((offset + 16u), asuint(value[1u]));
-  buffer.Store3((offset + 32u), asuint(value[2u]));
-  buffer.Store3((offset + 48u), asuint(value[3u]));
+void sb_store_23(uint offset, float4x3 value) {
+  sb.Store3((offset + 0u), asuint(value[0u]));
+  sb.Store3((offset + 16u), asuint(value[1u]));
+  sb.Store3((offset + 32u), asuint(value[2u]));
+  sb.Store3((offset + 48u), asuint(value[3u]));
 }
 
-void tint_symbol_24(RWByteAddressBuffer buffer, uint offset, float4x4 value) {
-  buffer.Store4((offset + 0u), asuint(value[0u]));
-  buffer.Store4((offset + 16u), asuint(value[1u]));
-  buffer.Store4((offset + 32u), asuint(value[2u]));
-  buffer.Store4((offset + 48u), asuint(value[3u]));
+void sb_store_24(uint offset, float4x4 value) {
+  sb.Store4((offset + 0u), asuint(value[0u]));
+  sb.Store4((offset + 16u), asuint(value[1u]));
+  sb.Store4((offset + 32u), asuint(value[2u]));
+  sb.Store4((offset + 48u), asuint(value[3u]));
 }
 
-void tint_symbol_25(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+void sb_store_25(uint offset, matrix<float16_t, 2, 2> value) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
 }
 
-void tint_symbol_26(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+void sb_store_26(uint offset, matrix<float16_t, 2, 3> value) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
 }
 
-void tint_symbol_27(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+void sb_store_27(uint offset, matrix<float16_t, 2, 4> value) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
 }
 
-void tint_symbol_28(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 3, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
+void sb_store_28(uint offset, matrix<float16_t, 3, 2> value) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+  sb.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
 }
 
-void tint_symbol_29(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 3, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
+void sb_store_29(uint offset, matrix<float16_t, 3, 3> value) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+  sb.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
 }
 
-void tint_symbol_30(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 3, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
+void sb_store_30(uint offset, matrix<float16_t, 3, 4> value) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+  sb.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
 }
 
-void tint_symbol_31(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 12u), value[3u]);
+void sb_store_31(uint offset, matrix<float16_t, 4, 2> value) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+  sb.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
+  sb.Store<vector<float16_t, 2> >((offset + 12u), value[3u]);
 }
 
-void tint_symbol_32(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 24u), value[3u]);
+void sb_store_32(uint offset, matrix<float16_t, 4, 3> value) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+  sb.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
+  sb.Store<vector<float16_t, 3> >((offset + 24u), value[3u]);
 }
 
-void tint_symbol_33(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 24u), value[3u]);
+void sb_store_33(uint offset, matrix<float16_t, 4, 4> value) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+  sb.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
+  sb.Store<vector<float16_t, 4> >((offset + 24u), value[3u]);
 }
 
-void tint_symbol_34(RWByteAddressBuffer buffer, uint offset, float3 value[2]) {
-  float3 array[2] = value;
+void sb_store_34(uint offset, float3 value[2]) {
+  float3 array_1[2] = value;
   {
     for(uint i = 0u; (i < 2u); i = (i + 1u)) {
-      buffer.Store3((offset + (i * 16u)), asuint(array[i]));
+      sb.Store3((offset + (i * 16u)), asuint(array_1[i]));
     }
   }
 }
 
-void tint_symbol_35(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 2> value[2]) {
-  matrix<float16_t, 4, 2> array_1[2] = value;
+void sb_store_35(uint offset, matrix<float16_t, 4, 2> value[2]) {
+  matrix<float16_t, 4, 2> array_2[2] = value;
   {
     for(uint i_1 = 0u; (i_1 < 2u); i_1 = (i_1 + 1u)) {
-      tint_symbol_31(buffer, (offset + (i_1 * 16u)), array_1[i_1]);
+      sb_store_31((offset + (i_1 * 16u)), array_2[i_1]);
     }
   }
 }
 
-void tint_symbol_36(RWByteAddressBuffer buffer, uint offset, Inner value) {
-  buffer.Store((offset + 0u), asuint(value.scalar_i32));
-  buffer.Store((offset + 4u), asuint(value.scalar_f32));
-  buffer.Store<float16_t>((offset + 8u), value.scalar_f16);
+void sb_store_36(uint offset, Inner value) {
+  sb.Store((offset + 0u), asuint(value.scalar_i32));
+  sb.Store((offset + 4u), asuint(value.scalar_f32));
+  sb.Store<float16_t>((offset + 8u), value.scalar_f16);
 }
 
-void tint_symbol_37(RWByteAddressBuffer buffer, uint offset, Inner value[4]) {
-  Inner array_2[4] = value;
+void sb_store_37(uint offset, Inner value[4]) {
+  Inner array_3[4] = value;
   {
     for(uint i_2 = 0u; (i_2 < 4u); i_2 = (i_2 + 1u)) {
-      tint_symbol_36(buffer, (offset + (i_2 * 12u)), array_2[i_2]);
+      sb_store_36((offset + (i_2 * 12u)), array_3[i_2]);
     }
   }
 }
@@ -167,34 +167,31 @@
   sb.Store4(128u, asuint((0).xxxx));
   sb.Store4(144u, asuint((0u).xxxx));
   sb.Store<vector<float16_t, 4> >(160u, (float16_t(0.0h)).xxxx);
-  tint_symbol_16(sb, 168u, float2x2((0.0f).xx, (0.0f).xx));
-  tint_symbol_17(sb, 192u, float2x3((0.0f).xxx, (0.0f).xxx));
-  tint_symbol_18(sb, 224u, float2x4((0.0f).xxxx, (0.0f).xxxx));
-  tint_symbol_19(sb, 256u, float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx));
-  tint_symbol_20(sb, 288u, float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
-  tint_symbol_21(sb, 336u, float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
-  tint_symbol_22(sb, 384u, float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx));
-  tint_symbol_23(sb, 416u, float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
-  tint_symbol_24(sb, 480u, float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
-  tint_symbol_25(sb, 544u, matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
-  tint_symbol_26(sb, 552u, matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
-  tint_symbol_27(sb, 568u, matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
-  tint_symbol_28(sb, 584u, matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
-  tint_symbol_29(sb, 600u, matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
-  tint_symbol_30(sb, 624u, matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
-  tint_symbol_31(sb, 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));
-  tint_symbol_32(sb, 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));
-  tint_symbol_33(sb, 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));
-  const float3 tint_symbol_38[2] = (float3[2])0;
-  tint_symbol_34(sb, 736u, tint_symbol_38);
-  const matrix<float16_t, 4, 2> tint_symbol_39[2] = (matrix<float16_t, 4, 2>[2])0;
-  tint_symbol_35(sb, 768u, tint_symbol_39);
-  const Inner tint_symbol_40 = (Inner)0;
-  tint_symbol_36(sb, 800u, tint_symbol_40);
-  const Inner tint_symbol_41[4] = (Inner[4])0;
-  tint_symbol_37(sb, 812u, tint_symbol_41);
+  sb_store_16(168u, float2x2((0.0f).xx, (0.0f).xx));
+  sb_store_17(192u, float2x3((0.0f).xxx, (0.0f).xxx));
+  sb_store_18(224u, float2x4((0.0f).xxxx, (0.0f).xxxx));
+  sb_store_19(256u, float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx));
+  sb_store_20(288u, float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+  sb_store_21(336u, float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  sb_store_22(384u, float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx));
+  sb_store_23(416u, float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+  sb_store_24(480u, float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  sb_store_25(544u, matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+  sb_store_26(552u, matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+  sb_store_27(568u, matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
+  sb_store_28(584u, matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+  sb_store_29(600u, matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+  sb_store_30(624u, matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
+  sb_store_31(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));
+  sb_store_32(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));
+  sb_store_33(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));
+  const float3 tint_symbol[2] = (float3[2])0;
+  sb_store_34(736u, tint_symbol);
+  const matrix<float16_t, 4, 2> tint_symbol_1[2] = (matrix<float16_t, 4, 2>[2])0;
+  sb_store_35(768u, tint_symbol_1);
+  const Inner tint_symbol_2 = (Inner)0;
+  sb_store_36(800u, tint_symbol_2);
+  const Inner tint_symbol_3[4] = (Inner[4])0;
+  sb_store_37(812u, tint_symbol_3);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002416606A770(4,3-11): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/storage/types/array4_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/array4_f16.wgsl.expected.fxc.hlsl
index 68566c9..e6dcef6 100644
--- a/test/tint/buffer/storage/types/array4_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/array4_f16.wgsl.expected.fxc.hlsl
@@ -3,21 +3,21 @@
 ByteAddressBuffer tint_symbol : register(t0, space0);
 RWByteAddressBuffer tint_symbol_1 : register(u1, space0);
 
-void tint_symbol_2(RWByteAddressBuffer buffer, uint offset, float16_t value[4]) {
-  float16_t array[4] = value;
+void tint_symbol_1_store(uint offset, float16_t value[4]) {
+  float16_t array_1[4] = value;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      buffer.Store<float16_t>((offset + (i * 2u)), array[i]);
+      tint_symbol_1.Store<float16_t>((offset + (i * 2u)), array_1[i]);
     }
   }
 }
 
-typedef float16_t tint_symbol_4_ret[4];
-tint_symbol_4_ret tint_symbol_4(ByteAddressBuffer buffer, uint offset) {
+typedef float16_t tint_symbol_load_ret[4];
+tint_symbol_load_ret tint_symbol_load(uint offset) {
   float16_t arr[4] = (float16_t[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = buffer.Load<float16_t>((offset + (i_1 * 2u)));
+      arr[i_1] = tint_symbol.Load<float16_t>((offset + (i_1 * 2u)));
     }
   }
   return arr;
@@ -25,9 +25,6 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_2(tint_symbol_1, 0u, tint_symbol_4(tint_symbol, 0u));
+  tint_symbol_1_store(0u, tint_symbol_load(0u));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000026D14358AA0(4,61-69): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/storage/types/f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/f16.wgsl.expected.fxc.hlsl
index b9b25bf..bd466bf 100644
--- a/test/tint/buffer/storage/types/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
   tint_symbol_1.Store<float16_t>(0u, tint_symbol.Load<float16_t>(0u));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000020E4EF78E80(6,3-21): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.fxc.hlsl
index ac54fc4..26dcbbd 100644
--- a/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.fxc.hlsl
@@ -3,21 +3,17 @@
 ByteAddressBuffer tint_symbol : register(t0, space0);
 RWByteAddressBuffer tint_symbol_1 : register(u1, space0);
 
-void tint_symbol_2(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+void tint_symbol_1_store(uint offset, matrix<float16_t, 2, 2> value) {
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
 }
 
-matrix<float16_t, 2, 2> tint_symbol_4(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 2, 2>(buffer.Load<vector<float16_t, 2> >((offset + 0u)), buffer.Load<vector<float16_t, 2> >((offset + 4u)));
+matrix<float16_t, 2, 2> tint_symbol_load(uint offset) {
+  return matrix<float16_t, 2, 2>(tint_symbol.Load<vector<float16_t, 2> >((offset + 0u)), tint_symbol.Load<vector<float16_t, 2> >((offset + 4u)));
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_2(tint_symbol_1, 0u, tint_symbol_4(tint_symbol, 0u));
+  tint_symbol_1_store(0u, tint_symbol_load(0u));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001C807B6A460(4,68-76): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001C807B6A460(5,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.fxc.hlsl
index 3eb59f8..bf84ffc 100644
--- a/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.fxc.hlsl
@@ -3,21 +3,17 @@
 ByteAddressBuffer tint_symbol : register(t0, space0);
 RWByteAddressBuffer tint_symbol_1 : register(u1, space0);
 
-void tint_symbol_2(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+void tint_symbol_1_store(uint offset, matrix<float16_t, 2, 3> value) {
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
 }
 
-matrix<float16_t, 2, 3> tint_symbol_4(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 2, 3>(buffer.Load<vector<float16_t, 3> >((offset + 0u)), buffer.Load<vector<float16_t, 3> >((offset + 8u)));
+matrix<float16_t, 2, 3> tint_symbol_load(uint offset) {
+  return matrix<float16_t, 2, 3>(tint_symbol.Load<vector<float16_t, 3> >((offset + 0u)), tint_symbol.Load<vector<float16_t, 3> >((offset + 8u)));
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_2(tint_symbol_1, 0u, tint_symbol_4(tint_symbol, 0u));
+  tint_symbol_1_store(0u, tint_symbol_load(0u));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000020545EDA130(4,68-76): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000020545EDA130(5,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.fxc.hlsl
index d823c51..7e30f92 100644
--- a/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.fxc.hlsl
@@ -3,21 +3,17 @@
 ByteAddressBuffer tint_symbol : register(t0, space0);
 RWByteAddressBuffer tint_symbol_1 : register(u1, space0);
 
-void tint_symbol_2(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+void tint_symbol_1_store(uint offset, matrix<float16_t, 2, 4> value) {
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
 }
 
-matrix<float16_t, 2, 4> tint_symbol_4(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 2, 4>(buffer.Load<vector<float16_t, 4> >((offset + 0u)), buffer.Load<vector<float16_t, 4> >((offset + 8u)));
+matrix<float16_t, 2, 4> tint_symbol_load(uint offset) {
+  return matrix<float16_t, 2, 4>(tint_symbol.Load<vector<float16_t, 4> >((offset + 0u)), tint_symbol.Load<vector<float16_t, 4> >((offset + 8u)));
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_2(tint_symbol_1, 0u, tint_symbol_4(tint_symbol, 0u));
+  tint_symbol_1_store(0u, tint_symbol_load(0u));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001A3CD399A80(4,68-76): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001A3CD399A80(5,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.fxc.hlsl
index b48f684..8a787f9 100644
--- a/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.fxc.hlsl
@@ -3,22 +3,18 @@
 ByteAddressBuffer tint_symbol : register(t0, space0);
 RWByteAddressBuffer tint_symbol_1 : register(u1, space0);
 
-void tint_symbol_2(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 3, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
+void tint_symbol_1_store(uint offset, matrix<float16_t, 3, 2> value) {
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
 }
 
-matrix<float16_t, 3, 2> tint_symbol_4(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 3, 2>(buffer.Load<vector<float16_t, 2> >((offset + 0u)), buffer.Load<vector<float16_t, 2> >((offset + 4u)), buffer.Load<vector<float16_t, 2> >((offset + 8u)));
+matrix<float16_t, 3, 2> tint_symbol_load(uint offset) {
+  return matrix<float16_t, 3, 2>(tint_symbol.Load<vector<float16_t, 2> >((offset + 0u)), tint_symbol.Load<vector<float16_t, 2> >((offset + 4u)), tint_symbol.Load<vector<float16_t, 2> >((offset + 8u)));
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_2(tint_symbol_1, 0u, tint_symbol_4(tint_symbol, 0u));
+  tint_symbol_1_store(0u, tint_symbol_load(0u));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001A3687DC740(4,68-76): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001A3687DC740(5,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.fxc.hlsl
index a5d9c58..608f6b5 100644
--- a/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.fxc.hlsl
@@ -3,22 +3,18 @@
 ByteAddressBuffer tint_symbol : register(t0, space0);
 RWByteAddressBuffer tint_symbol_1 : register(u1, space0);
 
-void tint_symbol_2(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 3, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
+void tint_symbol_1_store(uint offset, matrix<float16_t, 3, 3> value) {
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
 }
 
-matrix<float16_t, 3, 3> tint_symbol_4(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 3, 3>(buffer.Load<vector<float16_t, 3> >((offset + 0u)), buffer.Load<vector<float16_t, 3> >((offset + 8u)), buffer.Load<vector<float16_t, 3> >((offset + 16u)));
+matrix<float16_t, 3, 3> tint_symbol_load(uint offset) {
+  return matrix<float16_t, 3, 3>(tint_symbol.Load<vector<float16_t, 3> >((offset + 0u)), tint_symbol.Load<vector<float16_t, 3> >((offset + 8u)), tint_symbol.Load<vector<float16_t, 3> >((offset + 16u)));
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_2(tint_symbol_1, 0u, tint_symbol_4(tint_symbol, 0u));
+  tint_symbol_1_store(0u, tint_symbol_load(0u));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002722B6D74E0(4,68-76): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002722B6D74E0(5,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.fxc.hlsl
index 56c3651..f3062cb 100644
--- a/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.fxc.hlsl
@@ -3,22 +3,18 @@
 ByteAddressBuffer tint_symbol : register(t0, space0);
 RWByteAddressBuffer tint_symbol_1 : register(u1, space0);
 
-void tint_symbol_2(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 3, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
+void tint_symbol_1_store(uint offset, matrix<float16_t, 3, 4> value) {
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
 }
 
-matrix<float16_t, 3, 4> tint_symbol_4(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 3, 4>(buffer.Load<vector<float16_t, 4> >((offset + 0u)), buffer.Load<vector<float16_t, 4> >((offset + 8u)), buffer.Load<vector<float16_t, 4> >((offset + 16u)));
+matrix<float16_t, 3, 4> tint_symbol_load(uint offset) {
+  return matrix<float16_t, 3, 4>(tint_symbol.Load<vector<float16_t, 4> >((offset + 0u)), tint_symbol.Load<vector<float16_t, 4> >((offset + 8u)), tint_symbol.Load<vector<float16_t, 4> >((offset + 16u)));
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_2(tint_symbol_1, 0u, tint_symbol_4(tint_symbol, 0u));
+  tint_symbol_1_store(0u, tint_symbol_load(0u));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F969F77390(4,68-76): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F969F77390(5,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.fxc.hlsl
index c3aacd6..f99d788 100644
--- a/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.fxc.hlsl
@@ -3,23 +3,19 @@
 ByteAddressBuffer tint_symbol : register(t0, space0);
 RWByteAddressBuffer tint_symbol_1 : register(u1, space0);
 
-void tint_symbol_2(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 12u), value[3u]);
+void tint_symbol_1_store(uint offset, matrix<float16_t, 4, 2> value) {
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 12u), value[3u]);
 }
 
-matrix<float16_t, 4, 2> tint_symbol_4(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 4, 2>(buffer.Load<vector<float16_t, 2> >((offset + 0u)), buffer.Load<vector<float16_t, 2> >((offset + 4u)), buffer.Load<vector<float16_t, 2> >((offset + 8u)), buffer.Load<vector<float16_t, 2> >((offset + 12u)));
+matrix<float16_t, 4, 2> tint_symbol_load(uint offset) {
+  return matrix<float16_t, 4, 2>(tint_symbol.Load<vector<float16_t, 2> >((offset + 0u)), tint_symbol.Load<vector<float16_t, 2> >((offset + 4u)), tint_symbol.Load<vector<float16_t, 2> >((offset + 8u)), tint_symbol.Load<vector<float16_t, 2> >((offset + 12u)));
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_2(tint_symbol_1, 0u, tint_symbol_4(tint_symbol, 0u));
+  tint_symbol_1_store(0u, tint_symbol_load(0u));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001A0195E7740(4,68-76): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001A0195E7740(5,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.fxc.hlsl
index a117a65..1b4c861 100644
--- a/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.fxc.hlsl
@@ -3,23 +3,19 @@
 ByteAddressBuffer tint_symbol : register(t0, space0);
 RWByteAddressBuffer tint_symbol_1 : register(u1, space0);
 
-void tint_symbol_2(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 24u), value[3u]);
+void tint_symbol_1_store(uint offset, matrix<float16_t, 4, 3> value) {
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 24u), value[3u]);
 }
 
-matrix<float16_t, 4, 3> tint_symbol_4(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 4, 3>(buffer.Load<vector<float16_t, 3> >((offset + 0u)), buffer.Load<vector<float16_t, 3> >((offset + 8u)), buffer.Load<vector<float16_t, 3> >((offset + 16u)), buffer.Load<vector<float16_t, 3> >((offset + 24u)));
+matrix<float16_t, 4, 3> tint_symbol_load(uint offset) {
+  return matrix<float16_t, 4, 3>(tint_symbol.Load<vector<float16_t, 3> >((offset + 0u)), tint_symbol.Load<vector<float16_t, 3> >((offset + 8u)), tint_symbol.Load<vector<float16_t, 3> >((offset + 16u)), tint_symbol.Load<vector<float16_t, 3> >((offset + 24u)));
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_2(tint_symbol_1, 0u, tint_symbol_4(tint_symbol, 0u));
+  tint_symbol_1_store(0u, tint_symbol_load(0u));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000027711EB7740(4,68-76): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000027711EB7740(5,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.fxc.hlsl
index 9139ed2..11e9990 100644
--- a/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.fxc.hlsl
@@ -3,23 +3,19 @@
 ByteAddressBuffer tint_symbol : register(t0, space0);
 RWByteAddressBuffer tint_symbol_1 : register(u1, space0);
 
-void tint_symbol_2(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 24u), value[3u]);
+void tint_symbol_1_store(uint offset, matrix<float16_t, 4, 4> value) {
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 24u), value[3u]);
 }
 
-matrix<float16_t, 4, 4> tint_symbol_4(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 4, 4>(buffer.Load<vector<float16_t, 4> >((offset + 0u)), buffer.Load<vector<float16_t, 4> >((offset + 8u)), buffer.Load<vector<float16_t, 4> >((offset + 16u)), buffer.Load<vector<float16_t, 4> >((offset + 24u)));
+matrix<float16_t, 4, 4> tint_symbol_load(uint offset) {
+  return matrix<float16_t, 4, 4>(tint_symbol.Load<vector<float16_t, 4> >((offset + 0u)), tint_symbol.Load<vector<float16_t, 4> >((offset + 8u)), tint_symbol.Load<vector<float16_t, 4> >((offset + 16u)), tint_symbol.Load<vector<float16_t, 4> >((offset + 24u)));
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_2(tint_symbol_1, 0u, tint_symbol_4(tint_symbol, 0u));
+  tint_symbol_1_store(0u, tint_symbol_load(0u));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000023AE8057740(4,68-76): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000023AE8057740(5,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.fxc.hlsl
index 922c506..bd466bf 100644
--- a/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
   tint_symbol_1.Store<float16_t>(0u, tint_symbol.Load<float16_t>(0u));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001A520622CB0(6,3-21): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/storage/types/struct_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/struct_f16.wgsl.expected.fxc.hlsl
index c4b0487..d7fc596 100644
--- a/test/tint/buffer/storage/types/struct_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/struct_f16.wgsl.expected.fxc.hlsl
@@ -12,41 +12,38 @@
 ByteAddressBuffer tint_symbol : register(t0, space0);
 RWByteAddressBuffer tint_symbol_1 : register(u1, space0);
 
-matrix<float16_t, 2, 4> tint_symbol_6(ByteAddressBuffer buffer, uint offset) {
-  return matrix<float16_t, 2, 4>(buffer.Load<vector<float16_t, 4> >((offset + 0u)), buffer.Load<vector<float16_t, 4> >((offset + 8u)));
+matrix<float16_t, 2, 4> tint_symbol_load_4(uint offset) {
+  return matrix<float16_t, 2, 4>(tint_symbol.Load<vector<float16_t, 4> >((offset + 0u)), tint_symbol.Load<vector<float16_t, 4> >((offset + 8u)));
 }
 
-Inner tint_symbol_3(ByteAddressBuffer buffer, uint offset) {
-  const Inner tint_symbol_14 = {buffer.Load<float16_t>((offset + 0u)), buffer.Load<vector<float16_t, 3> >((offset + 8u)), tint_symbol_6(buffer, (offset + 16u))};
-  return tint_symbol_14;
+Inner tint_symbol_load_1(uint offset) {
+  const Inner tint_symbol_2 = {tint_symbol.Load<float16_t>((offset + 0u)), tint_symbol.Load<vector<float16_t, 3> >((offset + 8u)), tint_symbol_load_4((offset + 16u))};
+  return tint_symbol_2;
 }
 
-S tint_symbol_2(ByteAddressBuffer buffer, uint offset) {
-  const S tint_symbol_15 = {tint_symbol_3(buffer, (offset + 0u))};
-  return tint_symbol_15;
+S tint_symbol_load(uint offset) {
+  const S tint_symbol_3 = {tint_symbol_load_1((offset + 0u))};
+  return tint_symbol_3;
 }
 
-void tint_symbol_12(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+void tint_symbol_1_store_4(uint offset, matrix<float16_t, 2, 4> value) {
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
 }
 
-void tint_symbol_9(RWByteAddressBuffer buffer, uint offset, Inner value) {
-  buffer.Store<float16_t>((offset + 0u), value.scalar_f16);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value.vec3_f16);
-  tint_symbol_12(buffer, (offset + 16u), value.mat2x4_f16);
+void tint_symbol_1_store_1(uint offset, Inner value) {
+  tint_symbol_1.Store<float16_t>((offset + 0u), value.scalar_f16);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 8u), value.vec3_f16);
+  tint_symbol_1_store_4((offset + 16u), value.mat2x4_f16);
 }
 
-void tint_symbol_8(RWByteAddressBuffer buffer, uint offset, S value) {
-  tint_symbol_9(buffer, (offset + 0u), value.inner);
+void tint_symbol_1_store(uint offset, S value) {
+  tint_symbol_1_store_1((offset + 0u), value.inner);
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  const S t = tint_symbol_2(tint_symbol, 0u);
-  tint_symbol_8(tint_symbol_1, 0u, t);
+  const S t = tint_symbol_load(0u);
+  tint_symbol_1_store(0u, t);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001A50B947690(2,3-11): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.fxc.hlsl
index 7756784..1adab96 100644
--- a/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
   tint_symbol_1.Store<vector<float16_t, 2> >(0u, tint_symbol.Load<vector<float16_t, 2> >(0u));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000017510013100(6,3-21): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.fxc.hlsl
index 8354072..af4b81a 100644
--- a/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
   tint_symbol_1.Store<vector<float16_t, 3> >(0u, tint_symbol.Load<vector<float16_t, 3> >(0u));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000207E7334340(6,3-21): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.fxc.hlsl
index 5910328..62ba5f8 100644
--- a/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
   tint_symbol_1.Store<vector<float16_t, 4> >(0u, tint_symbol.Load<vector<float16_t, 4> >(0u));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001D5DD394680(6,3-21): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.fxc.hlsl
index 623e140..2753538 100644
--- a/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.fxc.hlsl
@@ -8,240 +8,240 @@
   uint idx : SV_GroupIndex;
 };
 
-float2x2 tint_symbol_18(uint4 buffer[400], uint offset) {
+float2x2 ub_load_16(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load = buffer[scalar_offset / 4];
+  uint4 ubo_load = ub[scalar_offset / 4];
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_1 = ub[scalar_offset_1 / 4];
   return float2x2(asfloat(((scalar_offset & 2) ? ubo_load.zw : ubo_load.xy)), asfloat(((scalar_offset_1 & 2) ? ubo_load_1.zw : ubo_load_1.xy)));
 }
 
-float2x3 tint_symbol_19(uint4 buffer[400], uint offset) {
+float2x3 ub_load_17(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 16u)) / 4;
-  return float2x3(asfloat(buffer[scalar_offset_2 / 4].xyz), asfloat(buffer[scalar_offset_3 / 4].xyz));
+  return float2x3(asfloat(ub[scalar_offset_2 / 4].xyz), asfloat(ub[scalar_offset_3 / 4].xyz));
 }
 
-float2x4 tint_symbol_20(uint4 buffer[400], uint offset) {
+float2x4 ub_load_18(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 16u)) / 4;
-  return float2x4(asfloat(buffer[scalar_offset_4 / 4]), asfloat(buffer[scalar_offset_5 / 4]));
+  return float2x4(asfloat(ub[scalar_offset_4 / 4]), asfloat(ub[scalar_offset_5 / 4]));
 }
 
-float3x2 tint_symbol_21(uint4 buffer[400], uint offset) {
+float3x2 ub_load_19(uint offset) {
   const uint scalar_offset_6 = ((offset + 0u)) / 4;
-  uint4 ubo_load_2 = buffer[scalar_offset_6 / 4];
+  uint4 ubo_load_2 = ub[scalar_offset_6 / 4];
   const uint scalar_offset_7 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_7 / 4];
+  uint4 ubo_load_3 = ub[scalar_offset_7 / 4];
   const uint scalar_offset_8 = ((offset + 16u)) / 4;
-  uint4 ubo_load_4 = buffer[scalar_offset_8 / 4];
+  uint4 ubo_load_4 = ub[scalar_offset_8 / 4];
   return float3x2(asfloat(((scalar_offset_6 & 2) ? ubo_load_2.zw : ubo_load_2.xy)), asfloat(((scalar_offset_7 & 2) ? ubo_load_3.zw : ubo_load_3.xy)), asfloat(((scalar_offset_8 & 2) ? ubo_load_4.zw : ubo_load_4.xy)));
 }
 
-float3x3 tint_symbol_22(uint4 buffer[400], uint offset) {
+float3x3 ub_load_20(uint offset) {
   const uint scalar_offset_9 = ((offset + 0u)) / 4;
   const uint scalar_offset_10 = ((offset + 16u)) / 4;
   const uint scalar_offset_11 = ((offset + 32u)) / 4;
-  return float3x3(asfloat(buffer[scalar_offset_9 / 4].xyz), asfloat(buffer[scalar_offset_10 / 4].xyz), asfloat(buffer[scalar_offset_11 / 4].xyz));
+  return float3x3(asfloat(ub[scalar_offset_9 / 4].xyz), asfloat(ub[scalar_offset_10 / 4].xyz), asfloat(ub[scalar_offset_11 / 4].xyz));
 }
 
-float3x4 tint_symbol_23(uint4 buffer[400], uint offset) {
+float3x4 ub_load_21(uint offset) {
   const uint scalar_offset_12 = ((offset + 0u)) / 4;
   const uint scalar_offset_13 = ((offset + 16u)) / 4;
   const uint scalar_offset_14 = ((offset + 32u)) / 4;
-  return float3x4(asfloat(buffer[scalar_offset_12 / 4]), asfloat(buffer[scalar_offset_13 / 4]), asfloat(buffer[scalar_offset_14 / 4]));
+  return float3x4(asfloat(ub[scalar_offset_12 / 4]), asfloat(ub[scalar_offset_13 / 4]), asfloat(ub[scalar_offset_14 / 4]));
 }
 
-float4x2 tint_symbol_24(uint4 buffer[400], uint offset) {
+float4x2 ub_load_22(uint offset) {
   const uint scalar_offset_15 = ((offset + 0u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_15 / 4];
+  uint4 ubo_load_5 = ub[scalar_offset_15 / 4];
   const uint scalar_offset_16 = ((offset + 8u)) / 4;
-  uint4 ubo_load_6 = buffer[scalar_offset_16 / 4];
+  uint4 ubo_load_6 = ub[scalar_offset_16 / 4];
   const uint scalar_offset_17 = ((offset + 16u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_17 / 4];
+  uint4 ubo_load_7 = ub[scalar_offset_17 / 4];
   const uint scalar_offset_18 = ((offset + 24u)) / 4;
-  uint4 ubo_load_8 = buffer[scalar_offset_18 / 4];
+  uint4 ubo_load_8 = ub[scalar_offset_18 / 4];
   return float4x2(asfloat(((scalar_offset_15 & 2) ? ubo_load_5.zw : ubo_load_5.xy)), asfloat(((scalar_offset_16 & 2) ? ubo_load_6.zw : ubo_load_6.xy)), asfloat(((scalar_offset_17 & 2) ? ubo_load_7.zw : ubo_load_7.xy)), asfloat(((scalar_offset_18 & 2) ? ubo_load_8.zw : ubo_load_8.xy)));
 }
 
-float4x3 tint_symbol_25(uint4 buffer[400], uint offset) {
+float4x3 ub_load_23(uint offset) {
   const uint scalar_offset_19 = ((offset + 0u)) / 4;
   const uint scalar_offset_20 = ((offset + 16u)) / 4;
   const uint scalar_offset_21 = ((offset + 32u)) / 4;
   const uint scalar_offset_22 = ((offset + 48u)) / 4;
-  return float4x3(asfloat(buffer[scalar_offset_19 / 4].xyz), asfloat(buffer[scalar_offset_20 / 4].xyz), asfloat(buffer[scalar_offset_21 / 4].xyz), asfloat(buffer[scalar_offset_22 / 4].xyz));
+  return float4x3(asfloat(ub[scalar_offset_19 / 4].xyz), asfloat(ub[scalar_offset_20 / 4].xyz), asfloat(ub[scalar_offset_21 / 4].xyz), asfloat(ub[scalar_offset_22 / 4].xyz));
 }
 
-float4x4 tint_symbol_26(uint4 buffer[400], uint offset) {
+float4x4 ub_load_24(uint offset) {
   const uint scalar_offset_23 = ((offset + 0u)) / 4;
   const uint scalar_offset_24 = ((offset + 16u)) / 4;
   const uint scalar_offset_25 = ((offset + 32u)) / 4;
   const uint scalar_offset_26 = ((offset + 48u)) / 4;
-  return float4x4(asfloat(buffer[scalar_offset_23 / 4]), asfloat(buffer[scalar_offset_24 / 4]), asfloat(buffer[scalar_offset_25 / 4]), asfloat(buffer[scalar_offset_26 / 4]));
+  return float4x4(asfloat(ub[scalar_offset_23 / 4]), asfloat(ub[scalar_offset_24 / 4]), asfloat(ub[scalar_offset_25 / 4]), asfloat(ub[scalar_offset_26 / 4]));
 }
 
-matrix<float16_t, 2, 2> tint_symbol_27(uint4 buffer[400], uint offset) {
+matrix<float16_t, 2, 2> ub_load_25(uint offset) {
   const uint scalar_offset_27 = ((offset + 0u)) / 4;
-  uint ubo_load_9 = buffer[scalar_offset_27 / 4][scalar_offset_27 % 4];
+  uint ubo_load_9 = ub[scalar_offset_27 / 4][scalar_offset_27 % 4];
   const uint scalar_offset_28 = ((offset + 4u)) / 4;
-  uint ubo_load_10 = buffer[scalar_offset_28 / 4][scalar_offset_28 % 4];
+  uint ubo_load_10 = ub[scalar_offset_28 / 4][scalar_offset_28 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_9 & 0xFFFF)), float16_t(f16tof32(ubo_load_9 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_10 & 0xFFFF)), float16_t(f16tof32(ubo_load_10 >> 16))));
 }
 
-matrix<float16_t, 2, 3> tint_symbol_28(uint4 buffer[400], uint offset) {
+matrix<float16_t, 2, 3> ub_load_26(uint offset) {
   const uint scalar_offset_29 = ((offset + 0u)) / 4;
-  uint4 ubo_load_12 = buffer[scalar_offset_29 / 4];
+  uint4 ubo_load_12 = ub[scalar_offset_29 / 4];
   uint2 ubo_load_11 = ((scalar_offset_29 & 2) ? ubo_load_12.zw : ubo_load_12.xy);
   vector<float16_t, 2> ubo_load_11_xz = vector<float16_t, 2>(f16tof32(ubo_load_11 & 0xFFFF));
   float16_t ubo_load_11_y = f16tof32(ubo_load_11[0] >> 16);
   const uint scalar_offset_30 = ((offset + 8u)) / 4;
-  uint4 ubo_load_14 = buffer[scalar_offset_30 / 4];
+  uint4 ubo_load_14 = ub[scalar_offset_30 / 4];
   uint2 ubo_load_13 = ((scalar_offset_30 & 2) ? ubo_load_14.zw : ubo_load_14.xy);
   vector<float16_t, 2> ubo_load_13_xz = vector<float16_t, 2>(f16tof32(ubo_load_13 & 0xFFFF));
   float16_t ubo_load_13_y = f16tof32(ubo_load_13[0] >> 16);
   return matrix<float16_t, 2, 3>(vector<float16_t, 3>(ubo_load_11_xz[0], ubo_load_11_y, ubo_load_11_xz[1]), vector<float16_t, 3>(ubo_load_13_xz[0], ubo_load_13_y, ubo_load_13_xz[1]));
 }
 
-matrix<float16_t, 2, 4> tint_symbol_29(uint4 buffer[400], uint offset) {
+matrix<float16_t, 2, 4> ub_load_27(uint offset) {
   const uint scalar_offset_31 = ((offset + 0u)) / 4;
-  uint4 ubo_load_16 = buffer[scalar_offset_31 / 4];
+  uint4 ubo_load_16 = ub[scalar_offset_31 / 4];
   uint2 ubo_load_15 = ((scalar_offset_31 & 2) ? ubo_load_16.zw : ubo_load_16.xy);
   vector<float16_t, 2> ubo_load_15_xz = vector<float16_t, 2>(f16tof32(ubo_load_15 & 0xFFFF));
   vector<float16_t, 2> ubo_load_15_yw = vector<float16_t, 2>(f16tof32(ubo_load_15 >> 16));
   const uint scalar_offset_32 = ((offset + 8u)) / 4;
-  uint4 ubo_load_18 = buffer[scalar_offset_32 / 4];
+  uint4 ubo_load_18 = ub[scalar_offset_32 / 4];
   uint2 ubo_load_17 = ((scalar_offset_32 & 2) ? ubo_load_18.zw : ubo_load_18.xy);
   vector<float16_t, 2> ubo_load_17_xz = vector<float16_t, 2>(f16tof32(ubo_load_17 & 0xFFFF));
   vector<float16_t, 2> ubo_load_17_yw = vector<float16_t, 2>(f16tof32(ubo_load_17 >> 16));
   return matrix<float16_t, 2, 4>(vector<float16_t, 4>(ubo_load_15_xz[0], ubo_load_15_yw[0], ubo_load_15_xz[1], ubo_load_15_yw[1]), vector<float16_t, 4>(ubo_load_17_xz[0], ubo_load_17_yw[0], ubo_load_17_xz[1], ubo_load_17_yw[1]));
 }
 
-matrix<float16_t, 3, 2> tint_symbol_30(uint4 buffer[400], uint offset) {
+matrix<float16_t, 3, 2> ub_load_28(uint offset) {
   const uint scalar_offset_33 = ((offset + 0u)) / 4;
-  uint ubo_load_19 = buffer[scalar_offset_33 / 4][scalar_offset_33 % 4];
+  uint ubo_load_19 = ub[scalar_offset_33 / 4][scalar_offset_33 % 4];
   const uint scalar_offset_34 = ((offset + 4u)) / 4;
-  uint ubo_load_20 = buffer[scalar_offset_34 / 4][scalar_offset_34 % 4];
+  uint ubo_load_20 = ub[scalar_offset_34 / 4][scalar_offset_34 % 4];
   const uint scalar_offset_35 = ((offset + 8u)) / 4;
-  uint ubo_load_21 = buffer[scalar_offset_35 / 4][scalar_offset_35 % 4];
+  uint ubo_load_21 = ub[scalar_offset_35 / 4][scalar_offset_35 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_19 & 0xFFFF)), float16_t(f16tof32(ubo_load_19 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_20 & 0xFFFF)), float16_t(f16tof32(ubo_load_20 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_21 & 0xFFFF)), float16_t(f16tof32(ubo_load_21 >> 16))));
 }
 
-matrix<float16_t, 3, 3> tint_symbol_31(uint4 buffer[400], uint offset) {
+matrix<float16_t, 3, 3> ub_load_29(uint offset) {
   const uint scalar_offset_36 = ((offset + 0u)) / 4;
-  uint4 ubo_load_23 = buffer[scalar_offset_36 / 4];
+  uint4 ubo_load_23 = ub[scalar_offset_36 / 4];
   uint2 ubo_load_22 = ((scalar_offset_36 & 2) ? ubo_load_23.zw : ubo_load_23.xy);
   vector<float16_t, 2> ubo_load_22_xz = vector<float16_t, 2>(f16tof32(ubo_load_22 & 0xFFFF));
   float16_t ubo_load_22_y = f16tof32(ubo_load_22[0] >> 16);
   const uint scalar_offset_37 = ((offset + 8u)) / 4;
-  uint4 ubo_load_25 = buffer[scalar_offset_37 / 4];
+  uint4 ubo_load_25 = ub[scalar_offset_37 / 4];
   uint2 ubo_load_24 = ((scalar_offset_37 & 2) ? ubo_load_25.zw : ubo_load_25.xy);
   vector<float16_t, 2> ubo_load_24_xz = vector<float16_t, 2>(f16tof32(ubo_load_24 & 0xFFFF));
   float16_t ubo_load_24_y = f16tof32(ubo_load_24[0] >> 16);
   const uint scalar_offset_38 = ((offset + 16u)) / 4;
-  uint4 ubo_load_27 = buffer[scalar_offset_38 / 4];
+  uint4 ubo_load_27 = ub[scalar_offset_38 / 4];
   uint2 ubo_load_26 = ((scalar_offset_38 & 2) ? ubo_load_27.zw : ubo_load_27.xy);
   vector<float16_t, 2> ubo_load_26_xz = vector<float16_t, 2>(f16tof32(ubo_load_26 & 0xFFFF));
   float16_t ubo_load_26_y = f16tof32(ubo_load_26[0] >> 16);
   return matrix<float16_t, 3, 3>(vector<float16_t, 3>(ubo_load_22_xz[0], ubo_load_22_y, ubo_load_22_xz[1]), vector<float16_t, 3>(ubo_load_24_xz[0], ubo_load_24_y, ubo_load_24_xz[1]), vector<float16_t, 3>(ubo_load_26_xz[0], ubo_load_26_y, ubo_load_26_xz[1]));
 }
 
-matrix<float16_t, 3, 4> tint_symbol_32(uint4 buffer[400], uint offset) {
+matrix<float16_t, 3, 4> ub_load_30(uint offset) {
   const uint scalar_offset_39 = ((offset + 0u)) / 4;
-  uint4 ubo_load_29 = buffer[scalar_offset_39 / 4];
+  uint4 ubo_load_29 = ub[scalar_offset_39 / 4];
   uint2 ubo_load_28 = ((scalar_offset_39 & 2) ? ubo_load_29.zw : ubo_load_29.xy);
   vector<float16_t, 2> ubo_load_28_xz = vector<float16_t, 2>(f16tof32(ubo_load_28 & 0xFFFF));
   vector<float16_t, 2> ubo_load_28_yw = vector<float16_t, 2>(f16tof32(ubo_load_28 >> 16));
   const uint scalar_offset_40 = ((offset + 8u)) / 4;
-  uint4 ubo_load_31 = buffer[scalar_offset_40 / 4];
+  uint4 ubo_load_31 = ub[scalar_offset_40 / 4];
   uint2 ubo_load_30 = ((scalar_offset_40 & 2) ? ubo_load_31.zw : ubo_load_31.xy);
   vector<float16_t, 2> ubo_load_30_xz = vector<float16_t, 2>(f16tof32(ubo_load_30 & 0xFFFF));
   vector<float16_t, 2> ubo_load_30_yw = vector<float16_t, 2>(f16tof32(ubo_load_30 >> 16));
   const uint scalar_offset_41 = ((offset + 16u)) / 4;
-  uint4 ubo_load_33 = buffer[scalar_offset_41 / 4];
+  uint4 ubo_load_33 = ub[scalar_offset_41 / 4];
   uint2 ubo_load_32 = ((scalar_offset_41 & 2) ? ubo_load_33.zw : ubo_load_33.xy);
   vector<float16_t, 2> ubo_load_32_xz = vector<float16_t, 2>(f16tof32(ubo_load_32 & 0xFFFF));
   vector<float16_t, 2> ubo_load_32_yw = vector<float16_t, 2>(f16tof32(ubo_load_32 >> 16));
   return matrix<float16_t, 3, 4>(vector<float16_t, 4>(ubo_load_28_xz[0], ubo_load_28_yw[0], ubo_load_28_xz[1], ubo_load_28_yw[1]), vector<float16_t, 4>(ubo_load_30_xz[0], ubo_load_30_yw[0], ubo_load_30_xz[1], ubo_load_30_yw[1]), vector<float16_t, 4>(ubo_load_32_xz[0], ubo_load_32_yw[0], ubo_load_32_xz[1], ubo_load_32_yw[1]));
 }
 
-matrix<float16_t, 4, 2> tint_symbol_33(uint4 buffer[400], uint offset) {
+matrix<float16_t, 4, 2> ub_load_31(uint offset) {
   const uint scalar_offset_42 = ((offset + 0u)) / 4;
-  uint ubo_load_34 = buffer[scalar_offset_42 / 4][scalar_offset_42 % 4];
+  uint ubo_load_34 = ub[scalar_offset_42 / 4][scalar_offset_42 % 4];
   const uint scalar_offset_43 = ((offset + 4u)) / 4;
-  uint ubo_load_35 = buffer[scalar_offset_43 / 4][scalar_offset_43 % 4];
+  uint ubo_load_35 = ub[scalar_offset_43 / 4][scalar_offset_43 % 4];
   const uint scalar_offset_44 = ((offset + 8u)) / 4;
-  uint ubo_load_36 = buffer[scalar_offset_44 / 4][scalar_offset_44 % 4];
+  uint ubo_load_36 = ub[scalar_offset_44 / 4][scalar_offset_44 % 4];
   const uint scalar_offset_45 = ((offset + 12u)) / 4;
-  uint ubo_load_37 = buffer[scalar_offset_45 / 4][scalar_offset_45 % 4];
+  uint ubo_load_37 = ub[scalar_offset_45 / 4][scalar_offset_45 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_34 & 0xFFFF)), float16_t(f16tof32(ubo_load_34 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_35 & 0xFFFF)), float16_t(f16tof32(ubo_load_35 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_36 & 0xFFFF)), float16_t(f16tof32(ubo_load_36 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_37 & 0xFFFF)), float16_t(f16tof32(ubo_load_37 >> 16))));
 }
 
-matrix<float16_t, 4, 3> tint_symbol_34(uint4 buffer[400], uint offset) {
+matrix<float16_t, 4, 3> ub_load_32(uint offset) {
   const uint scalar_offset_46 = ((offset + 0u)) / 4;
-  uint4 ubo_load_39 = buffer[scalar_offset_46 / 4];
+  uint4 ubo_load_39 = ub[scalar_offset_46 / 4];
   uint2 ubo_load_38 = ((scalar_offset_46 & 2) ? ubo_load_39.zw : ubo_load_39.xy);
   vector<float16_t, 2> ubo_load_38_xz = vector<float16_t, 2>(f16tof32(ubo_load_38 & 0xFFFF));
   float16_t ubo_load_38_y = f16tof32(ubo_load_38[0] >> 16);
   const uint scalar_offset_47 = ((offset + 8u)) / 4;
-  uint4 ubo_load_41 = buffer[scalar_offset_47 / 4];
+  uint4 ubo_load_41 = ub[scalar_offset_47 / 4];
   uint2 ubo_load_40 = ((scalar_offset_47 & 2) ? ubo_load_41.zw : ubo_load_41.xy);
   vector<float16_t, 2> ubo_load_40_xz = vector<float16_t, 2>(f16tof32(ubo_load_40 & 0xFFFF));
   float16_t ubo_load_40_y = f16tof32(ubo_load_40[0] >> 16);
   const uint scalar_offset_48 = ((offset + 16u)) / 4;
-  uint4 ubo_load_43 = buffer[scalar_offset_48 / 4];
+  uint4 ubo_load_43 = ub[scalar_offset_48 / 4];
   uint2 ubo_load_42 = ((scalar_offset_48 & 2) ? ubo_load_43.zw : ubo_load_43.xy);
   vector<float16_t, 2> ubo_load_42_xz = vector<float16_t, 2>(f16tof32(ubo_load_42 & 0xFFFF));
   float16_t ubo_load_42_y = f16tof32(ubo_load_42[0] >> 16);
   const uint scalar_offset_49 = ((offset + 24u)) / 4;
-  uint4 ubo_load_45 = buffer[scalar_offset_49 / 4];
+  uint4 ubo_load_45 = ub[scalar_offset_49 / 4];
   uint2 ubo_load_44 = ((scalar_offset_49 & 2) ? ubo_load_45.zw : ubo_load_45.xy);
   vector<float16_t, 2> ubo_load_44_xz = vector<float16_t, 2>(f16tof32(ubo_load_44 & 0xFFFF));
   float16_t ubo_load_44_y = f16tof32(ubo_load_44[0] >> 16);
   return matrix<float16_t, 4, 3>(vector<float16_t, 3>(ubo_load_38_xz[0], ubo_load_38_y, ubo_load_38_xz[1]), vector<float16_t, 3>(ubo_load_40_xz[0], ubo_load_40_y, ubo_load_40_xz[1]), vector<float16_t, 3>(ubo_load_42_xz[0], ubo_load_42_y, ubo_load_42_xz[1]), vector<float16_t, 3>(ubo_load_44_xz[0], ubo_load_44_y, ubo_load_44_xz[1]));
 }
 
-matrix<float16_t, 4, 4> tint_symbol_35(uint4 buffer[400], uint offset) {
+matrix<float16_t, 4, 4> ub_load_33(uint offset) {
   const uint scalar_offset_50 = ((offset + 0u)) / 4;
-  uint4 ubo_load_47 = buffer[scalar_offset_50 / 4];
+  uint4 ubo_load_47 = ub[scalar_offset_50 / 4];
   uint2 ubo_load_46 = ((scalar_offset_50 & 2) ? ubo_load_47.zw : ubo_load_47.xy);
   vector<float16_t, 2> ubo_load_46_xz = vector<float16_t, 2>(f16tof32(ubo_load_46 & 0xFFFF));
   vector<float16_t, 2> ubo_load_46_yw = vector<float16_t, 2>(f16tof32(ubo_load_46 >> 16));
   const uint scalar_offset_51 = ((offset + 8u)) / 4;
-  uint4 ubo_load_49 = buffer[scalar_offset_51 / 4];
+  uint4 ubo_load_49 = ub[scalar_offset_51 / 4];
   uint2 ubo_load_48 = ((scalar_offset_51 & 2) ? ubo_load_49.zw : ubo_load_49.xy);
   vector<float16_t, 2> ubo_load_48_xz = vector<float16_t, 2>(f16tof32(ubo_load_48 & 0xFFFF));
   vector<float16_t, 2> ubo_load_48_yw = vector<float16_t, 2>(f16tof32(ubo_load_48 >> 16));
   const uint scalar_offset_52 = ((offset + 16u)) / 4;
-  uint4 ubo_load_51 = buffer[scalar_offset_52 / 4];
+  uint4 ubo_load_51 = ub[scalar_offset_52 / 4];
   uint2 ubo_load_50 = ((scalar_offset_52 & 2) ? ubo_load_51.zw : ubo_load_51.xy);
   vector<float16_t, 2> ubo_load_50_xz = vector<float16_t, 2>(f16tof32(ubo_load_50 & 0xFFFF));
   vector<float16_t, 2> ubo_load_50_yw = vector<float16_t, 2>(f16tof32(ubo_load_50 >> 16));
   const uint scalar_offset_53 = ((offset + 24u)) / 4;
-  uint4 ubo_load_53 = buffer[scalar_offset_53 / 4];
+  uint4 ubo_load_53 = ub[scalar_offset_53 / 4];
   uint2 ubo_load_52 = ((scalar_offset_53 & 2) ? ubo_load_53.zw : ubo_load_53.xy);
   vector<float16_t, 2> ubo_load_52_xz = vector<float16_t, 2>(f16tof32(ubo_load_52 & 0xFFFF));
   vector<float16_t, 2> ubo_load_52_yw = vector<float16_t, 2>(f16tof32(ubo_load_52 >> 16));
   return matrix<float16_t, 4, 4>(vector<float16_t, 4>(ubo_load_46_xz[0], ubo_load_46_yw[0], ubo_load_46_xz[1], ubo_load_46_yw[1]), vector<float16_t, 4>(ubo_load_48_xz[0], ubo_load_48_yw[0], ubo_load_48_xz[1], ubo_load_48_yw[1]), vector<float16_t, 4>(ubo_load_50_xz[0], ubo_load_50_yw[0], ubo_load_50_xz[1], ubo_load_50_yw[1]), vector<float16_t, 4>(ubo_load_52_xz[0], ubo_load_52_yw[0], ubo_load_52_xz[1], ubo_load_52_yw[1]));
 }
 
-typedef float3 tint_symbol_36_ret[2];
-tint_symbol_36_ret tint_symbol_36(uint4 buffer[400], uint offset) {
+typedef float3 ub_load_34_ret[2];
+ub_load_34_ret ub_load_34(uint offset) {
   float3 arr_1[2] = (float3[2])0;
   {
     for(uint i = 0u; (i < 2u); i = (i + 1u)) {
       const uint scalar_offset_54 = ((offset + (i * 16u))) / 4;
-      arr_1[i] = asfloat(buffer[scalar_offset_54 / 4].xyz);
+      arr_1[i] = asfloat(ub[scalar_offset_54 / 4].xyz);
     }
   }
   return arr_1;
 }
 
-typedef matrix<float16_t, 4, 2> tint_symbol_37_ret[2];
-tint_symbol_37_ret tint_symbol_37(uint4 buffer[400], uint offset) {
+typedef matrix<float16_t, 4, 2> ub_load_35_ret[2];
+ub_load_35_ret ub_load_35(uint offset) {
   matrix<float16_t, 4, 2> arr_2[2] = (matrix<float16_t, 4, 2>[2])0;
   {
     for(uint i_1 = 0u; (i_1 < 2u); i_1 = (i_1 + 1u)) {
-      arr_2[i_1] = tint_symbol_33(buffer, (offset + (i_1 * 16u)));
+      arr_2[i_1] = ub_load_31((offset + (i_1 * 16u)));
     }
   }
   return arr_2;
@@ -293,26 +293,26 @@
   vector<float16_t, 2> ubo_load_60_xz = vector<float16_t, 2>(f16tof32(ubo_load_60 & 0xFFFF));
   vector<float16_t, 2> ubo_load_60_yw = vector<float16_t, 2>(f16tof32(ubo_load_60 >> 16));
   const vector<float16_t, 4> vec4_f16 = vector<float16_t, 4>(ubo_load_60_xz[0], ubo_load_60_yw[0], ubo_load_60_xz[1], ubo_load_60_yw[1]);
-  const float2x2 mat2x2_f32 = tint_symbol_18(ub, ((800u * idx) + 168u));
-  const float2x3 mat2x3_f32 = tint_symbol_19(ub, ((800u * idx) + 192u));
-  const float2x4 mat2x4_f32 = tint_symbol_20(ub, ((800u * idx) + 224u));
-  const float3x2 mat3x2_f32 = tint_symbol_21(ub, ((800u * idx) + 256u));
-  const float3x3 mat3x3_f32 = tint_symbol_22(ub, ((800u * idx) + 288u));
-  const float3x4 mat3x4_f32 = tint_symbol_23(ub, ((800u * idx) + 336u));
-  const float4x2 mat4x2_f32 = tint_symbol_24(ub, ((800u * idx) + 384u));
-  const float4x3 mat4x3_f32 = tint_symbol_25(ub, ((800u * idx) + 416u));
-  const float4x4 mat4x4_f32 = tint_symbol_26(ub, ((800u * idx) + 480u));
-  const matrix<float16_t, 2, 2> mat2x2_f16 = tint_symbol_27(ub, ((800u * idx) + 544u));
-  const matrix<float16_t, 2, 3> mat2x3_f16 = tint_symbol_28(ub, ((800u * idx) + 552u));
-  const matrix<float16_t, 2, 4> mat2x4_f16 = tint_symbol_29(ub, ((800u * idx) + 568u));
-  const matrix<float16_t, 3, 2> mat3x2_f16 = tint_symbol_30(ub, ((800u * idx) + 584u));
-  const matrix<float16_t, 3, 3> mat3x3_f16 = tint_symbol_31(ub, ((800u * idx) + 600u));
-  const matrix<float16_t, 3, 4> mat3x4_f16 = tint_symbol_32(ub, ((800u * idx) + 624u));
-  const matrix<float16_t, 4, 2> mat4x2_f16 = tint_symbol_33(ub, ((800u * idx) + 648u));
-  const matrix<float16_t, 4, 3> mat4x3_f16 = tint_symbol_34(ub, ((800u * idx) + 664u));
-  const matrix<float16_t, 4, 4> mat4x4_f16 = tint_symbol_35(ub, ((800u * idx) + 696u));
-  const float3 arr2_vec3_f32[2] = tint_symbol_36(ub, ((800u * idx) + 736u));
-  const matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = tint_symbol_37(ub, ((800u * idx) + 768u));
+  const float2x2 mat2x2_f32 = ub_load_16(((800u * idx) + 168u));
+  const float2x3 mat2x3_f32 = ub_load_17(((800u * idx) + 192u));
+  const float2x4 mat2x4_f32 = ub_load_18(((800u * idx) + 224u));
+  const float3x2 mat3x2_f32 = ub_load_19(((800u * idx) + 256u));
+  const float3x3 mat3x3_f32 = ub_load_20(((800u * idx) + 288u));
+  const float3x4 mat3x4_f32 = ub_load_21(((800u * idx) + 336u));
+  const float4x2 mat4x2_f32 = ub_load_22(((800u * idx) + 384u));
+  const float4x3 mat4x3_f32 = ub_load_23(((800u * idx) + 416u));
+  const float4x4 mat4x4_f32 = ub_load_24(((800u * idx) + 480u));
+  const matrix<float16_t, 2, 2> mat2x2_f16 = ub_load_25(((800u * idx) + 544u));
+  const matrix<float16_t, 2, 3> mat2x3_f16 = ub_load_26(((800u * idx) + 552u));
+  const matrix<float16_t, 2, 4> mat2x4_f16 = ub_load_27(((800u * idx) + 568u));
+  const matrix<float16_t, 3, 2> mat3x2_f16 = ub_load_28(((800u * idx) + 584u));
+  const matrix<float16_t, 3, 3> mat3x3_f16 = ub_load_29(((800u * idx) + 600u));
+  const matrix<float16_t, 3, 4> mat3x4_f16 = ub_load_30(((800u * idx) + 624u));
+  const matrix<float16_t, 4, 2> mat4x2_f16 = ub_load_31(((800u * idx) + 648u));
+  const matrix<float16_t, 4, 3> mat4x3_f16 = ub_load_32(((800u * idx) + 664u));
+  const matrix<float16_t, 4, 4> mat4x4_f16 = ub_load_33(((800u * idx) + 696u));
+  const float3 arr2_vec3_f32[2] = ub_load_34(((800u * idx) + 736u));
+  const matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = ub_load_35(((800u * idx) + 768u));
 }
 
 [numthreads(1, 1, 1)]
@@ -320,6 +320,3 @@
   main_inner(tint_symbol.idx);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000183446E4210(81,8-16): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.fxc.hlsl
index 1ee7543..91e200a 100644
--- a/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.fxc.hlsl
@@ -10,260 +10,260 @@
   uint4 ub[55];
 };
 
-float2x2 tint_symbol_16(uint4 buffer[55], uint offset) {
+float2x2 ub_load_16(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load = buffer[scalar_offset / 4];
+  uint4 ubo_load = ub[scalar_offset / 4];
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_1 = ub[scalar_offset_1 / 4];
   return float2x2(asfloat(((scalar_offset & 2) ? ubo_load.zw : ubo_load.xy)), asfloat(((scalar_offset_1 & 2) ? ubo_load_1.zw : ubo_load_1.xy)));
 }
 
-float2x3 tint_symbol_17(uint4 buffer[55], uint offset) {
+float2x3 ub_load_17(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 16u)) / 4;
-  return float2x3(asfloat(buffer[scalar_offset_2 / 4].xyz), asfloat(buffer[scalar_offset_3 / 4].xyz));
+  return float2x3(asfloat(ub[scalar_offset_2 / 4].xyz), asfloat(ub[scalar_offset_3 / 4].xyz));
 }
 
-float2x4 tint_symbol_18(uint4 buffer[55], uint offset) {
+float2x4 ub_load_18(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 16u)) / 4;
-  return float2x4(asfloat(buffer[scalar_offset_4 / 4]), asfloat(buffer[scalar_offset_5 / 4]));
+  return float2x4(asfloat(ub[scalar_offset_4 / 4]), asfloat(ub[scalar_offset_5 / 4]));
 }
 
-float3x2 tint_symbol_19(uint4 buffer[55], uint offset) {
+float3x2 ub_load_19(uint offset) {
   const uint scalar_offset_6 = ((offset + 0u)) / 4;
-  uint4 ubo_load_2 = buffer[scalar_offset_6 / 4];
+  uint4 ubo_load_2 = ub[scalar_offset_6 / 4];
   const uint scalar_offset_7 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_7 / 4];
+  uint4 ubo_load_3 = ub[scalar_offset_7 / 4];
   const uint scalar_offset_8 = ((offset + 16u)) / 4;
-  uint4 ubo_load_4 = buffer[scalar_offset_8 / 4];
+  uint4 ubo_load_4 = ub[scalar_offset_8 / 4];
   return float3x2(asfloat(((scalar_offset_6 & 2) ? ubo_load_2.zw : ubo_load_2.xy)), asfloat(((scalar_offset_7 & 2) ? ubo_load_3.zw : ubo_load_3.xy)), asfloat(((scalar_offset_8 & 2) ? ubo_load_4.zw : ubo_load_4.xy)));
 }
 
-float3x3 tint_symbol_20(uint4 buffer[55], uint offset) {
+float3x3 ub_load_20(uint offset) {
   const uint scalar_offset_9 = ((offset + 0u)) / 4;
   const uint scalar_offset_10 = ((offset + 16u)) / 4;
   const uint scalar_offset_11 = ((offset + 32u)) / 4;
-  return float3x3(asfloat(buffer[scalar_offset_9 / 4].xyz), asfloat(buffer[scalar_offset_10 / 4].xyz), asfloat(buffer[scalar_offset_11 / 4].xyz));
+  return float3x3(asfloat(ub[scalar_offset_9 / 4].xyz), asfloat(ub[scalar_offset_10 / 4].xyz), asfloat(ub[scalar_offset_11 / 4].xyz));
 }
 
-float3x4 tint_symbol_21(uint4 buffer[55], uint offset) {
+float3x4 ub_load_21(uint offset) {
   const uint scalar_offset_12 = ((offset + 0u)) / 4;
   const uint scalar_offset_13 = ((offset + 16u)) / 4;
   const uint scalar_offset_14 = ((offset + 32u)) / 4;
-  return float3x4(asfloat(buffer[scalar_offset_12 / 4]), asfloat(buffer[scalar_offset_13 / 4]), asfloat(buffer[scalar_offset_14 / 4]));
+  return float3x4(asfloat(ub[scalar_offset_12 / 4]), asfloat(ub[scalar_offset_13 / 4]), asfloat(ub[scalar_offset_14 / 4]));
 }
 
-float4x2 tint_symbol_22(uint4 buffer[55], uint offset) {
+float4x2 ub_load_22(uint offset) {
   const uint scalar_offset_15 = ((offset + 0u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_15 / 4];
+  uint4 ubo_load_5 = ub[scalar_offset_15 / 4];
   const uint scalar_offset_16 = ((offset + 8u)) / 4;
-  uint4 ubo_load_6 = buffer[scalar_offset_16 / 4];
+  uint4 ubo_load_6 = ub[scalar_offset_16 / 4];
   const uint scalar_offset_17 = ((offset + 16u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_17 / 4];
+  uint4 ubo_load_7 = ub[scalar_offset_17 / 4];
   const uint scalar_offset_18 = ((offset + 24u)) / 4;
-  uint4 ubo_load_8 = buffer[scalar_offset_18 / 4];
+  uint4 ubo_load_8 = ub[scalar_offset_18 / 4];
   return float4x2(asfloat(((scalar_offset_15 & 2) ? ubo_load_5.zw : ubo_load_5.xy)), asfloat(((scalar_offset_16 & 2) ? ubo_load_6.zw : ubo_load_6.xy)), asfloat(((scalar_offset_17 & 2) ? ubo_load_7.zw : ubo_load_7.xy)), asfloat(((scalar_offset_18 & 2) ? ubo_load_8.zw : ubo_load_8.xy)));
 }
 
-float4x3 tint_symbol_23(uint4 buffer[55], uint offset) {
+float4x3 ub_load_23(uint offset) {
   const uint scalar_offset_19 = ((offset + 0u)) / 4;
   const uint scalar_offset_20 = ((offset + 16u)) / 4;
   const uint scalar_offset_21 = ((offset + 32u)) / 4;
   const uint scalar_offset_22 = ((offset + 48u)) / 4;
-  return float4x3(asfloat(buffer[scalar_offset_19 / 4].xyz), asfloat(buffer[scalar_offset_20 / 4].xyz), asfloat(buffer[scalar_offset_21 / 4].xyz), asfloat(buffer[scalar_offset_22 / 4].xyz));
+  return float4x3(asfloat(ub[scalar_offset_19 / 4].xyz), asfloat(ub[scalar_offset_20 / 4].xyz), asfloat(ub[scalar_offset_21 / 4].xyz), asfloat(ub[scalar_offset_22 / 4].xyz));
 }
 
-float4x4 tint_symbol_24(uint4 buffer[55], uint offset) {
+float4x4 ub_load_24(uint offset) {
   const uint scalar_offset_23 = ((offset + 0u)) / 4;
   const uint scalar_offset_24 = ((offset + 16u)) / 4;
   const uint scalar_offset_25 = ((offset + 32u)) / 4;
   const uint scalar_offset_26 = ((offset + 48u)) / 4;
-  return float4x4(asfloat(buffer[scalar_offset_23 / 4]), asfloat(buffer[scalar_offset_24 / 4]), asfloat(buffer[scalar_offset_25 / 4]), asfloat(buffer[scalar_offset_26 / 4]));
+  return float4x4(asfloat(ub[scalar_offset_23 / 4]), asfloat(ub[scalar_offset_24 / 4]), asfloat(ub[scalar_offset_25 / 4]), asfloat(ub[scalar_offset_26 / 4]));
 }
 
-matrix<float16_t, 2, 2> tint_symbol_25(uint4 buffer[55], uint offset) {
+matrix<float16_t, 2, 2> ub_load_25(uint offset) {
   const uint scalar_offset_27 = ((offset + 0u)) / 4;
-  uint ubo_load_9 = buffer[scalar_offset_27 / 4][scalar_offset_27 % 4];
+  uint ubo_load_9 = ub[scalar_offset_27 / 4][scalar_offset_27 % 4];
   const uint scalar_offset_28 = ((offset + 4u)) / 4;
-  uint ubo_load_10 = buffer[scalar_offset_28 / 4][scalar_offset_28 % 4];
+  uint ubo_load_10 = ub[scalar_offset_28 / 4][scalar_offset_28 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_9 & 0xFFFF)), float16_t(f16tof32(ubo_load_9 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_10 & 0xFFFF)), float16_t(f16tof32(ubo_load_10 >> 16))));
 }
 
-matrix<float16_t, 2, 3> tint_symbol_26(uint4 buffer[55], uint offset) {
+matrix<float16_t, 2, 3> ub_load_26(uint offset) {
   const uint scalar_offset_29 = ((offset + 0u)) / 4;
-  uint4 ubo_load_12 = buffer[scalar_offset_29 / 4];
+  uint4 ubo_load_12 = ub[scalar_offset_29 / 4];
   uint2 ubo_load_11 = ((scalar_offset_29 & 2) ? ubo_load_12.zw : ubo_load_12.xy);
   vector<float16_t, 2> ubo_load_11_xz = vector<float16_t, 2>(f16tof32(ubo_load_11 & 0xFFFF));
   float16_t ubo_load_11_y = f16tof32(ubo_load_11[0] >> 16);
   const uint scalar_offset_30 = ((offset + 8u)) / 4;
-  uint4 ubo_load_14 = buffer[scalar_offset_30 / 4];
+  uint4 ubo_load_14 = ub[scalar_offset_30 / 4];
   uint2 ubo_load_13 = ((scalar_offset_30 & 2) ? ubo_load_14.zw : ubo_load_14.xy);
   vector<float16_t, 2> ubo_load_13_xz = vector<float16_t, 2>(f16tof32(ubo_load_13 & 0xFFFF));
   float16_t ubo_load_13_y = f16tof32(ubo_load_13[0] >> 16);
   return matrix<float16_t, 2, 3>(vector<float16_t, 3>(ubo_load_11_xz[0], ubo_load_11_y, ubo_load_11_xz[1]), vector<float16_t, 3>(ubo_load_13_xz[0], ubo_load_13_y, ubo_load_13_xz[1]));
 }
 
-matrix<float16_t, 2, 4> tint_symbol_27(uint4 buffer[55], uint offset) {
+matrix<float16_t, 2, 4> ub_load_27(uint offset) {
   const uint scalar_offset_31 = ((offset + 0u)) / 4;
-  uint4 ubo_load_16 = buffer[scalar_offset_31 / 4];
+  uint4 ubo_load_16 = ub[scalar_offset_31 / 4];
   uint2 ubo_load_15 = ((scalar_offset_31 & 2) ? ubo_load_16.zw : ubo_load_16.xy);
   vector<float16_t, 2> ubo_load_15_xz = vector<float16_t, 2>(f16tof32(ubo_load_15 & 0xFFFF));
   vector<float16_t, 2> ubo_load_15_yw = vector<float16_t, 2>(f16tof32(ubo_load_15 >> 16));
   const uint scalar_offset_32 = ((offset + 8u)) / 4;
-  uint4 ubo_load_18 = buffer[scalar_offset_32 / 4];
+  uint4 ubo_load_18 = ub[scalar_offset_32 / 4];
   uint2 ubo_load_17 = ((scalar_offset_32 & 2) ? ubo_load_18.zw : ubo_load_18.xy);
   vector<float16_t, 2> ubo_load_17_xz = vector<float16_t, 2>(f16tof32(ubo_load_17 & 0xFFFF));
   vector<float16_t, 2> ubo_load_17_yw = vector<float16_t, 2>(f16tof32(ubo_load_17 >> 16));
   return matrix<float16_t, 2, 4>(vector<float16_t, 4>(ubo_load_15_xz[0], ubo_load_15_yw[0], ubo_load_15_xz[1], ubo_load_15_yw[1]), vector<float16_t, 4>(ubo_load_17_xz[0], ubo_load_17_yw[0], ubo_load_17_xz[1], ubo_load_17_yw[1]));
 }
 
-matrix<float16_t, 3, 2> tint_symbol_28(uint4 buffer[55], uint offset) {
+matrix<float16_t, 3, 2> ub_load_28(uint offset) {
   const uint scalar_offset_33 = ((offset + 0u)) / 4;
-  uint ubo_load_19 = buffer[scalar_offset_33 / 4][scalar_offset_33 % 4];
+  uint ubo_load_19 = ub[scalar_offset_33 / 4][scalar_offset_33 % 4];
   const uint scalar_offset_34 = ((offset + 4u)) / 4;
-  uint ubo_load_20 = buffer[scalar_offset_34 / 4][scalar_offset_34 % 4];
+  uint ubo_load_20 = ub[scalar_offset_34 / 4][scalar_offset_34 % 4];
   const uint scalar_offset_35 = ((offset + 8u)) / 4;
-  uint ubo_load_21 = buffer[scalar_offset_35 / 4][scalar_offset_35 % 4];
+  uint ubo_load_21 = ub[scalar_offset_35 / 4][scalar_offset_35 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_19 & 0xFFFF)), float16_t(f16tof32(ubo_load_19 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_20 & 0xFFFF)), float16_t(f16tof32(ubo_load_20 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_21 & 0xFFFF)), float16_t(f16tof32(ubo_load_21 >> 16))));
 }
 
-matrix<float16_t, 3, 3> tint_symbol_29(uint4 buffer[55], uint offset) {
+matrix<float16_t, 3, 3> ub_load_29(uint offset) {
   const uint scalar_offset_36 = ((offset + 0u)) / 4;
-  uint4 ubo_load_23 = buffer[scalar_offset_36 / 4];
+  uint4 ubo_load_23 = ub[scalar_offset_36 / 4];
   uint2 ubo_load_22 = ((scalar_offset_36 & 2) ? ubo_load_23.zw : ubo_load_23.xy);
   vector<float16_t, 2> ubo_load_22_xz = vector<float16_t, 2>(f16tof32(ubo_load_22 & 0xFFFF));
   float16_t ubo_load_22_y = f16tof32(ubo_load_22[0] >> 16);
   const uint scalar_offset_37 = ((offset + 8u)) / 4;
-  uint4 ubo_load_25 = buffer[scalar_offset_37 / 4];
+  uint4 ubo_load_25 = ub[scalar_offset_37 / 4];
   uint2 ubo_load_24 = ((scalar_offset_37 & 2) ? ubo_load_25.zw : ubo_load_25.xy);
   vector<float16_t, 2> ubo_load_24_xz = vector<float16_t, 2>(f16tof32(ubo_load_24 & 0xFFFF));
   float16_t ubo_load_24_y = f16tof32(ubo_load_24[0] >> 16);
   const uint scalar_offset_38 = ((offset + 16u)) / 4;
-  uint4 ubo_load_27 = buffer[scalar_offset_38 / 4];
+  uint4 ubo_load_27 = ub[scalar_offset_38 / 4];
   uint2 ubo_load_26 = ((scalar_offset_38 & 2) ? ubo_load_27.zw : ubo_load_27.xy);
   vector<float16_t, 2> ubo_load_26_xz = vector<float16_t, 2>(f16tof32(ubo_load_26 & 0xFFFF));
   float16_t ubo_load_26_y = f16tof32(ubo_load_26[0] >> 16);
   return matrix<float16_t, 3, 3>(vector<float16_t, 3>(ubo_load_22_xz[0], ubo_load_22_y, ubo_load_22_xz[1]), vector<float16_t, 3>(ubo_load_24_xz[0], ubo_load_24_y, ubo_load_24_xz[1]), vector<float16_t, 3>(ubo_load_26_xz[0], ubo_load_26_y, ubo_load_26_xz[1]));
 }
 
-matrix<float16_t, 3, 4> tint_symbol_30(uint4 buffer[55], uint offset) {
+matrix<float16_t, 3, 4> ub_load_30(uint offset) {
   const uint scalar_offset_39 = ((offset + 0u)) / 4;
-  uint4 ubo_load_29 = buffer[scalar_offset_39 / 4];
+  uint4 ubo_load_29 = ub[scalar_offset_39 / 4];
   uint2 ubo_load_28 = ((scalar_offset_39 & 2) ? ubo_load_29.zw : ubo_load_29.xy);
   vector<float16_t, 2> ubo_load_28_xz = vector<float16_t, 2>(f16tof32(ubo_load_28 & 0xFFFF));
   vector<float16_t, 2> ubo_load_28_yw = vector<float16_t, 2>(f16tof32(ubo_load_28 >> 16));
   const uint scalar_offset_40 = ((offset + 8u)) / 4;
-  uint4 ubo_load_31 = buffer[scalar_offset_40 / 4];
+  uint4 ubo_load_31 = ub[scalar_offset_40 / 4];
   uint2 ubo_load_30 = ((scalar_offset_40 & 2) ? ubo_load_31.zw : ubo_load_31.xy);
   vector<float16_t, 2> ubo_load_30_xz = vector<float16_t, 2>(f16tof32(ubo_load_30 & 0xFFFF));
   vector<float16_t, 2> ubo_load_30_yw = vector<float16_t, 2>(f16tof32(ubo_load_30 >> 16));
   const uint scalar_offset_41 = ((offset + 16u)) / 4;
-  uint4 ubo_load_33 = buffer[scalar_offset_41 / 4];
+  uint4 ubo_load_33 = ub[scalar_offset_41 / 4];
   uint2 ubo_load_32 = ((scalar_offset_41 & 2) ? ubo_load_33.zw : ubo_load_33.xy);
   vector<float16_t, 2> ubo_load_32_xz = vector<float16_t, 2>(f16tof32(ubo_load_32 & 0xFFFF));
   vector<float16_t, 2> ubo_load_32_yw = vector<float16_t, 2>(f16tof32(ubo_load_32 >> 16));
   return matrix<float16_t, 3, 4>(vector<float16_t, 4>(ubo_load_28_xz[0], ubo_load_28_yw[0], ubo_load_28_xz[1], ubo_load_28_yw[1]), vector<float16_t, 4>(ubo_load_30_xz[0], ubo_load_30_yw[0], ubo_load_30_xz[1], ubo_load_30_yw[1]), vector<float16_t, 4>(ubo_load_32_xz[0], ubo_load_32_yw[0], ubo_load_32_xz[1], ubo_load_32_yw[1]));
 }
 
-matrix<float16_t, 4, 2> tint_symbol_31(uint4 buffer[55], uint offset) {
+matrix<float16_t, 4, 2> ub_load_31(uint offset) {
   const uint scalar_offset_42 = ((offset + 0u)) / 4;
-  uint ubo_load_34 = buffer[scalar_offset_42 / 4][scalar_offset_42 % 4];
+  uint ubo_load_34 = ub[scalar_offset_42 / 4][scalar_offset_42 % 4];
   const uint scalar_offset_43 = ((offset + 4u)) / 4;
-  uint ubo_load_35 = buffer[scalar_offset_43 / 4][scalar_offset_43 % 4];
+  uint ubo_load_35 = ub[scalar_offset_43 / 4][scalar_offset_43 % 4];
   const uint scalar_offset_44 = ((offset + 8u)) / 4;
-  uint ubo_load_36 = buffer[scalar_offset_44 / 4][scalar_offset_44 % 4];
+  uint ubo_load_36 = ub[scalar_offset_44 / 4][scalar_offset_44 % 4];
   const uint scalar_offset_45 = ((offset + 12u)) / 4;
-  uint ubo_load_37 = buffer[scalar_offset_45 / 4][scalar_offset_45 % 4];
+  uint ubo_load_37 = ub[scalar_offset_45 / 4][scalar_offset_45 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_34 & 0xFFFF)), float16_t(f16tof32(ubo_load_34 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_35 & 0xFFFF)), float16_t(f16tof32(ubo_load_35 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_36 & 0xFFFF)), float16_t(f16tof32(ubo_load_36 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_37 & 0xFFFF)), float16_t(f16tof32(ubo_load_37 >> 16))));
 }
 
-matrix<float16_t, 4, 3> tint_symbol_32(uint4 buffer[55], uint offset) {
+matrix<float16_t, 4, 3> ub_load_32(uint offset) {
   const uint scalar_offset_46 = ((offset + 0u)) / 4;
-  uint4 ubo_load_39 = buffer[scalar_offset_46 / 4];
+  uint4 ubo_load_39 = ub[scalar_offset_46 / 4];
   uint2 ubo_load_38 = ((scalar_offset_46 & 2) ? ubo_load_39.zw : ubo_load_39.xy);
   vector<float16_t, 2> ubo_load_38_xz = vector<float16_t, 2>(f16tof32(ubo_load_38 & 0xFFFF));
   float16_t ubo_load_38_y = f16tof32(ubo_load_38[0] >> 16);
   const uint scalar_offset_47 = ((offset + 8u)) / 4;
-  uint4 ubo_load_41 = buffer[scalar_offset_47 / 4];
+  uint4 ubo_load_41 = ub[scalar_offset_47 / 4];
   uint2 ubo_load_40 = ((scalar_offset_47 & 2) ? ubo_load_41.zw : ubo_load_41.xy);
   vector<float16_t, 2> ubo_load_40_xz = vector<float16_t, 2>(f16tof32(ubo_load_40 & 0xFFFF));
   float16_t ubo_load_40_y = f16tof32(ubo_load_40[0] >> 16);
   const uint scalar_offset_48 = ((offset + 16u)) / 4;
-  uint4 ubo_load_43 = buffer[scalar_offset_48 / 4];
+  uint4 ubo_load_43 = ub[scalar_offset_48 / 4];
   uint2 ubo_load_42 = ((scalar_offset_48 & 2) ? ubo_load_43.zw : ubo_load_43.xy);
   vector<float16_t, 2> ubo_load_42_xz = vector<float16_t, 2>(f16tof32(ubo_load_42 & 0xFFFF));
   float16_t ubo_load_42_y = f16tof32(ubo_load_42[0] >> 16);
   const uint scalar_offset_49 = ((offset + 24u)) / 4;
-  uint4 ubo_load_45 = buffer[scalar_offset_49 / 4];
+  uint4 ubo_load_45 = ub[scalar_offset_49 / 4];
   uint2 ubo_load_44 = ((scalar_offset_49 & 2) ? ubo_load_45.zw : ubo_load_45.xy);
   vector<float16_t, 2> ubo_load_44_xz = vector<float16_t, 2>(f16tof32(ubo_load_44 & 0xFFFF));
   float16_t ubo_load_44_y = f16tof32(ubo_load_44[0] >> 16);
   return matrix<float16_t, 4, 3>(vector<float16_t, 3>(ubo_load_38_xz[0], ubo_load_38_y, ubo_load_38_xz[1]), vector<float16_t, 3>(ubo_load_40_xz[0], ubo_load_40_y, ubo_load_40_xz[1]), vector<float16_t, 3>(ubo_load_42_xz[0], ubo_load_42_y, ubo_load_42_xz[1]), vector<float16_t, 3>(ubo_load_44_xz[0], ubo_load_44_y, ubo_load_44_xz[1]));
 }
 
-matrix<float16_t, 4, 4> tint_symbol_33(uint4 buffer[55], uint offset) {
+matrix<float16_t, 4, 4> ub_load_33(uint offset) {
   const uint scalar_offset_50 = ((offset + 0u)) / 4;
-  uint4 ubo_load_47 = buffer[scalar_offset_50 / 4];
+  uint4 ubo_load_47 = ub[scalar_offset_50 / 4];
   uint2 ubo_load_46 = ((scalar_offset_50 & 2) ? ubo_load_47.zw : ubo_load_47.xy);
   vector<float16_t, 2> ubo_load_46_xz = vector<float16_t, 2>(f16tof32(ubo_load_46 & 0xFFFF));
   vector<float16_t, 2> ubo_load_46_yw = vector<float16_t, 2>(f16tof32(ubo_load_46 >> 16));
   const uint scalar_offset_51 = ((offset + 8u)) / 4;
-  uint4 ubo_load_49 = buffer[scalar_offset_51 / 4];
+  uint4 ubo_load_49 = ub[scalar_offset_51 / 4];
   uint2 ubo_load_48 = ((scalar_offset_51 & 2) ? ubo_load_49.zw : ubo_load_49.xy);
   vector<float16_t, 2> ubo_load_48_xz = vector<float16_t, 2>(f16tof32(ubo_load_48 & 0xFFFF));
   vector<float16_t, 2> ubo_load_48_yw = vector<float16_t, 2>(f16tof32(ubo_load_48 >> 16));
   const uint scalar_offset_52 = ((offset + 16u)) / 4;
-  uint4 ubo_load_51 = buffer[scalar_offset_52 / 4];
+  uint4 ubo_load_51 = ub[scalar_offset_52 / 4];
   uint2 ubo_load_50 = ((scalar_offset_52 & 2) ? ubo_load_51.zw : ubo_load_51.xy);
   vector<float16_t, 2> ubo_load_50_xz = vector<float16_t, 2>(f16tof32(ubo_load_50 & 0xFFFF));
   vector<float16_t, 2> ubo_load_50_yw = vector<float16_t, 2>(f16tof32(ubo_load_50 >> 16));
   const uint scalar_offset_53 = ((offset + 24u)) / 4;
-  uint4 ubo_load_53 = buffer[scalar_offset_53 / 4];
+  uint4 ubo_load_53 = ub[scalar_offset_53 / 4];
   uint2 ubo_load_52 = ((scalar_offset_53 & 2) ? ubo_load_53.zw : ubo_load_53.xy);
   vector<float16_t, 2> ubo_load_52_xz = vector<float16_t, 2>(f16tof32(ubo_load_52 & 0xFFFF));
   vector<float16_t, 2> ubo_load_52_yw = vector<float16_t, 2>(f16tof32(ubo_load_52 >> 16));
   return matrix<float16_t, 4, 4>(vector<float16_t, 4>(ubo_load_46_xz[0], ubo_load_46_yw[0], ubo_load_46_xz[1], ubo_load_46_yw[1]), vector<float16_t, 4>(ubo_load_48_xz[0], ubo_load_48_yw[0], ubo_load_48_xz[1], ubo_load_48_yw[1]), vector<float16_t, 4>(ubo_load_50_xz[0], ubo_load_50_yw[0], ubo_load_50_xz[1], ubo_load_50_yw[1]), vector<float16_t, 4>(ubo_load_52_xz[0], ubo_load_52_yw[0], ubo_load_52_xz[1], ubo_load_52_yw[1]));
 }
 
-typedef float3 tint_symbol_34_ret[2];
-tint_symbol_34_ret tint_symbol_34(uint4 buffer[55], uint offset) {
+typedef float3 ub_load_34_ret[2];
+ub_load_34_ret ub_load_34(uint offset) {
   float3 arr[2] = (float3[2])0;
   {
     for(uint i = 0u; (i < 2u); i = (i + 1u)) {
       const uint scalar_offset_54 = ((offset + (i * 16u))) / 4;
-      arr[i] = asfloat(buffer[scalar_offset_54 / 4].xyz);
+      arr[i] = asfloat(ub[scalar_offset_54 / 4].xyz);
     }
   }
   return arr;
 }
 
-typedef matrix<float16_t, 4, 2> tint_symbol_35_ret[2];
-tint_symbol_35_ret tint_symbol_35(uint4 buffer[55], uint offset) {
+typedef matrix<float16_t, 4, 2> ub_load_35_ret[2];
+ub_load_35_ret ub_load_35(uint offset) {
   matrix<float16_t, 4, 2> arr_1[2] = (matrix<float16_t, 4, 2>[2])0;
   {
     for(uint i_1 = 0u; (i_1 < 2u); i_1 = (i_1 + 1u)) {
-      arr_1[i_1] = tint_symbol_31(buffer, (offset + (i_1 * 16u)));
+      arr_1[i_1] = ub_load_31((offset + (i_1 * 16u)));
     }
   }
   return arr_1;
 }
 
-Inner tint_symbol_36(uint4 buffer[55], uint offset) {
+Inner ub_load_36(uint offset) {
   const uint scalar_offset_55 = ((offset + 0u)) / 4;
   const uint scalar_offset_56 = ((offset + 4u)) / 4;
   const uint scalar_offset_bytes = ((offset + 8u));
   const uint scalar_offset_index = scalar_offset_bytes / 4;
-  const Inner tint_symbol_38 = {asint(buffer[scalar_offset_55 / 4][scalar_offset_55 % 4]), asfloat(buffer[scalar_offset_56 / 4][scalar_offset_56 % 4]), float16_t(f16tof32(((buffer[scalar_offset_index / 4][scalar_offset_index % 4] >> (scalar_offset_bytes % 4 == 0 ? 0 : 16)) & 0xFFFF)))};
-  return tint_symbol_38;
+  const Inner tint_symbol = {asint(ub[scalar_offset_55 / 4][scalar_offset_55 % 4]), asfloat(ub[scalar_offset_56 / 4][scalar_offset_56 % 4]), float16_t(f16tof32(((ub[scalar_offset_index / 4][scalar_offset_index % 4] >> (scalar_offset_bytes % 4 == 0 ? 0 : 16)) & 0xFFFF)))};
+  return tint_symbol;
 }
 
-typedef Inner tint_symbol_37_ret[4];
-tint_symbol_37_ret tint_symbol_37(uint4 buffer[55], uint offset) {
+typedef Inner ub_load_37_ret[4];
+ub_load_37_ret ub_load_37(uint offset) {
   Inner arr_2[4] = (Inner[4])0;
   {
     for(uint i_2 = 0u; (i_2 < 4u); i_2 = (i_2 + 1u)) {
-      arr_2[i_2] = tint_symbol_36(buffer, (offset + (i_2 * 16u)));
+      arr_2[i_2] = ub_load_36((offset + (i_2 * 16u)));
     }
   }
   return arr_2;
@@ -294,30 +294,27 @@
   vector<float16_t, 2> ubo_load_56_xz = vector<float16_t, 2>(f16tof32(ubo_load_56 & 0xFFFF));
   vector<float16_t, 2> ubo_load_56_yw = vector<float16_t, 2>(f16tof32(ubo_load_56 >> 16));
   const vector<float16_t, 4> vec4_f16 = vector<float16_t, 4>(ubo_load_56_xz[0], ubo_load_56_yw[0], ubo_load_56_xz[1], ubo_load_56_yw[1]);
-  const float2x2 mat2x2_f32 = tint_symbol_16(ub, 168u);
-  const float2x3 mat2x3_f32 = tint_symbol_17(ub, 192u);
-  const float2x4 mat2x4_f32 = tint_symbol_18(ub, 224u);
-  const float3x2 mat3x2_f32 = tint_symbol_19(ub, 256u);
-  const float3x3 mat3x3_f32 = tint_symbol_20(ub, 288u);
-  const float3x4 mat3x4_f32 = tint_symbol_21(ub, 336u);
-  const float4x2 mat4x2_f32 = tint_symbol_22(ub, 384u);
-  const float4x3 mat4x3_f32 = tint_symbol_23(ub, 416u);
-  const float4x4 mat4x4_f32 = tint_symbol_24(ub, 480u);
-  const matrix<float16_t, 2, 2> mat2x2_f16 = tint_symbol_25(ub, 544u);
-  const matrix<float16_t, 2, 3> mat2x3_f16 = tint_symbol_26(ub, 552u);
-  const matrix<float16_t, 2, 4> mat2x4_f16 = tint_symbol_27(ub, 568u);
-  const matrix<float16_t, 3, 2> mat3x2_f16 = tint_symbol_28(ub, 584u);
-  const matrix<float16_t, 3, 3> mat3x3_f16 = tint_symbol_29(ub, 600u);
-  const matrix<float16_t, 3, 4> mat3x4_f16 = tint_symbol_30(ub, 624u);
-  const matrix<float16_t, 4, 2> mat4x2_f16 = tint_symbol_31(ub, 648u);
-  const matrix<float16_t, 4, 3> mat4x3_f16 = tint_symbol_32(ub, 664u);
-  const matrix<float16_t, 4, 4> mat4x4_f16 = tint_symbol_33(ub, 696u);
-  const float3 arr2_vec3_f32[2] = tint_symbol_34(ub, 736u);
-  const matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = tint_symbol_35(ub, 768u);
-  const Inner struct_inner = tint_symbol_36(ub, 800u);
-  const Inner array_struct_inner[4] = tint_symbol_37(ub, 816u);
+  const float2x2 mat2x2_f32 = ub_load_16(168u);
+  const float2x3 mat2x3_f32 = ub_load_17(192u);
+  const float2x4 mat2x4_f32 = ub_load_18(224u);
+  const float3x2 mat3x2_f32 = ub_load_19(256u);
+  const float3x3 mat3x3_f32 = ub_load_20(288u);
+  const float3x4 mat3x4_f32 = ub_load_21(336u);
+  const float4x2 mat4x2_f32 = ub_load_22(384u);
+  const float4x3 mat4x3_f32 = ub_load_23(416u);
+  const float4x4 mat4x4_f32 = ub_load_24(480u);
+  const matrix<float16_t, 2, 2> mat2x2_f16 = ub_load_25(544u);
+  const matrix<float16_t, 2, 3> mat2x3_f16 = ub_load_26(552u);
+  const matrix<float16_t, 2, 4> mat2x4_f16 = ub_load_27(568u);
+  const matrix<float16_t, 3, 2> mat3x2_f16 = ub_load_28(584u);
+  const matrix<float16_t, 3, 3> mat3x3_f16 = ub_load_29(600u);
+  const matrix<float16_t, 3, 4> mat3x4_f16 = ub_load_30(624u);
+  const matrix<float16_t, 4, 2> mat4x2_f16 = ub_load_31(648u);
+  const matrix<float16_t, 4, 3> mat4x3_f16 = ub_load_32(664u);
+  const matrix<float16_t, 4, 4> mat4x4_f16 = ub_load_33(696u);
+  const float3 arr2_vec3_f32[2] = ub_load_34(736u);
+  const matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = ub_load_35(768u);
+  const Inner struct_inner = ub_load_36(800u);
+  const Inner array_struct_inner[4] = ub_load_37(816u);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001A0147F5100(4,3-11): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 245be9a..d7cffb2 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,26 +10,26 @@
   return counter;
 }
 
-matrix<float16_t, 2, 3> tint_symbol_1(uint4 buffer[4], uint offset) {
+matrix<float16_t, 2, 3> a_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   return matrix<float16_t, 2, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]));
 }
 
-typedef matrix<float16_t, 2, 3> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 2, 3> a_load_ret[4];
+a_load_ret a_load(uint offset) {
   matrix<float16_t, 2, 3> arr[4] = (matrix<float16_t, 2, 3>[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_1(buffer, (offset + (i_1 * 16u)));
+      arr[i_1] = a_load_1((offset + (i_1 * 16u)));
     }
   }
   return arr;
@@ -39,8 +39,8 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const matrix<float16_t, 2, 3> l_a[4] = tint_symbol(a, 0u);
-  const matrix<float16_t, 2, 3> l_a_i = tint_symbol_1(a, (16u * uint(p_a_i_save)));
+  const matrix<float16_t, 2, 3> l_a[4] = a_load(0u);
+  const matrix<float16_t, 2, 3> l_a_i = a_load_1((16u * uint(p_a_i_save)));
   const uint scalar_offset_2 = (((16u * uint(p_a_i_save)) + (8u * uint(p_a_i_i_save)))) / 4;
   uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
@@ -49,6 +49,3 @@
   const vector<float16_t, 3> l_a_i_i = vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F4D5AC4540(11,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index a57e6de..ced0d83 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -4,26 +4,26 @@
   uint4 a[4];
 };
 
-matrix<float16_t, 2, 3> tint_symbol_1(uint4 buffer[4], uint offset) {
+matrix<float16_t, 2, 3> a_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   return matrix<float16_t, 2, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]));
 }
 
-typedef matrix<float16_t, 2, 3> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 2, 3> a_load_ret[4];
+a_load_ret a_load(uint offset) {
   matrix<float16_t, 2, 3> arr[4] = (matrix<float16_t, 2, 3>[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 16u)));
+      arr[i] = a_load_1((offset + (i * 16u)));
     }
   }
   return arr;
@@ -31,14 +31,11 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 2, 3> l_a[4] = tint_symbol(a, 0u);
-  const matrix<float16_t, 2, 3> l_a_i = tint_symbol_1(a, 32u);
+  const matrix<float16_t, 2, 3> l_a[4] = a_load(0u);
+  const matrix<float16_t, 2, 3> l_a_i = a_load_1(32u);
   uint2 ubo_load_4 = a[2].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const vector<float16_t, 3> l_a_i_i = vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000016DBC7DD4E0(5,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_builtin.wgsl.expected.fxc.hlsl
index d47ca3e..86ef67d 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,14 +4,14 @@
   uint4 u[4];
 };
 
-matrix<float16_t, 2, 3> tint_symbol(uint4 buffer[4], uint offset) {
+matrix<float16_t, 2, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
@@ -20,7 +20,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 3, 2> t = transpose(tint_symbol(u, 32u));
+  const matrix<float16_t, 3, 2> t = transpose(u_load(32u));
   uint2 ubo_load_4 = u[0].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -31,6 +31,3 @@
   const float16_t a = abs(vector<float16_t, 3>(ubo_load_5_xz[0], ubo_load_5_y, ubo_load_5_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001B4475A47D0(5,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.fxc.hlsl
index c1210ac..995545d 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -16,26 +16,26 @@
 void d(float16_t f_1) {
 }
 
-matrix<float16_t, 2, 3> tint_symbol_1(uint4 buffer[4], uint offset) {
+matrix<float16_t, 2, 3> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   return matrix<float16_t, 2, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]));
 }
 
-typedef matrix<float16_t, 2, 3> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 2, 3> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 2, 3> arr[4] = (matrix<float16_t, 2, 3>[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 16u)));
+      arr[i] = u_load_1((offset + (i * 16u)));
     }
   }
   return arr;
@@ -43,8 +43,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
-  b(tint_symbol_1(u, 16u));
+  a(u_load(0u));
+  b(u_load_1(16u));
   uint2 ubo_load_4 = u[1].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -55,9 +55,3 @@
   d(vector<float16_t, 3>(ubo_load_5_xz[0], ubo_load_5_y, ubo_load_5_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002290980B6C0(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002290980B6C0(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002290980B6C0(11,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002290980B6C0(14,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.fxc.hlsl
index a5d49fe..d669bda 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.fxc.hlsl
@@ -5,26 +5,26 @@
 };
 static matrix<float16_t, 2, 3> p[4] = (matrix<float16_t, 2, 3>[4])0;
 
-matrix<float16_t, 2, 3> tint_symbol_1(uint4 buffer[4], uint offset) {
+matrix<float16_t, 2, 3> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   return matrix<float16_t, 2, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]));
 }
 
-typedef matrix<float16_t, 2, 3> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 2, 3> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 2, 3> arr[4] = (matrix<float16_t, 2, 3>[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 16u)));
+      arr[i] = u_load_1((offset + (i * 16u)));
     }
   }
   return arr;
@@ -32,8 +32,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
-  p[1] = tint_symbol_1(u, 32u);
+  p = u_load(0u);
+  p[1] = u_load_1(32u);
   uint2 ubo_load_4 = u[0].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -41,6 +41,3 @@
   p[1][0].x = float16_t(f16tof32(((u[0].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001C62197B570(4,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.fxc.hlsl
index da9a817..66dc24f 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -5,40 +5,40 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol_1(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+void s_store_1(uint offset, matrix<float16_t, 2, 3> value) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
 }
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 3> value[4]) {
-  matrix<float16_t, 2, 3> array[4] = value;
+void s_store(uint offset, matrix<float16_t, 2, 3> value[4]) {
+  matrix<float16_t, 2, 3> array_1[4] = value;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      tint_symbol_1(buffer, (offset + (i * 16u)), array[i]);
+      s_store_1((offset + (i * 16u)), array_1[i]);
     }
   }
 }
 
-matrix<float16_t, 2, 3> tint_symbol_4(uint4 buffer[4], uint offset) {
+matrix<float16_t, 2, 3> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   return matrix<float16_t, 2, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]));
 }
 
-typedef matrix<float16_t, 2, 3> tint_symbol_3_ret[4];
-tint_symbol_3_ret tint_symbol_3(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 2, 3> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 2, 3> arr[4] = (matrix<float16_t, 2, 3>[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_4(buffer, (offset + (i_1 * 16u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 16u)));
     }
   }
   return arr;
@@ -46,8 +46,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_3(u, 0u));
-  tint_symbol_1(s, 16u, tint_symbol_4(u, 32u));
+  s_store(0u, u_load(0u));
+  s_store_1(16u, u_load_1(32u));
   uint2 ubo_load_4 = u[0].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -55,7 +55,3 @@
   s.Store<float16_t>(16u, float16_t(f16tof32(((u[0].z) & 0xFFFF))));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001AB590A03F0(6,68-76): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001AB590A03F0(7,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
index b3d2fa5..d605a99 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -9,26 +9,26 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 2, 3> tint_symbol_3(uint4 buffer[4], uint offset) {
+matrix<float16_t, 2, 3> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   return matrix<float16_t, 2, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]));
 }
 
-typedef matrix<float16_t, 2, 3> tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 2, 3> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 2, 3> arr[4] = (matrix<float16_t, 2, 3>[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_3(buffer, (offset + (i_1 * 16u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 16u)));
     }
   }
   return arr;
@@ -42,8 +42,8 @@
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
-  w[1] = tint_symbol_3(u, 32u);
+  w = u_load(0u);
+  w[1] = u_load_1(32u);
   uint2 ubo_load_4 = u[0].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -56,6 +56,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000019397EFCDD0(4,20-28): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 08e7c35..cbc449e 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,26 +10,26 @@
   return counter;
 }
 
-matrix<float16_t, 2, 4> tint_symbol_1(uint4 buffer[4], uint offset) {
+matrix<float16_t, 2, 4> a_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   return matrix<float16_t, 2, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]));
 }
 
-typedef matrix<float16_t, 2, 4> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 2, 4> a_load_ret[4];
+a_load_ret a_load(uint offset) {
   matrix<float16_t, 2, 4> arr[4] = (matrix<float16_t, 2, 4>[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_1(buffer, (offset + (i_1 * 16u)));
+      arr[i_1] = a_load_1((offset + (i_1 * 16u)));
     }
   }
   return arr;
@@ -39,8 +39,8 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const matrix<float16_t, 2, 4> l_a[4] = tint_symbol(a, 0u);
-  const matrix<float16_t, 2, 4> l_a_i = tint_symbol_1(a, (16u * uint(p_a_i_save)));
+  const matrix<float16_t, 2, 4> l_a[4] = a_load(0u);
+  const matrix<float16_t, 2, 4> l_a_i = a_load_1((16u * uint(p_a_i_save)));
   const uint scalar_offset_2 = (((16u * uint(p_a_i_save)) + (8u * uint(p_a_i_i_save)))) / 4;
   uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
@@ -49,6 +49,3 @@
   const vector<float16_t, 4> l_a_i_i = vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000015AD15A89A0(11,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index d3aaa7e..4976db4 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -4,26 +4,26 @@
   uint4 a[4];
 };
 
-matrix<float16_t, 2, 4> tint_symbol_1(uint4 buffer[4], uint offset) {
+matrix<float16_t, 2, 4> a_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   return matrix<float16_t, 2, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]));
 }
 
-typedef matrix<float16_t, 2, 4> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 2, 4> a_load_ret[4];
+a_load_ret a_load(uint offset) {
   matrix<float16_t, 2, 4> arr[4] = (matrix<float16_t, 2, 4>[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 16u)));
+      arr[i] = a_load_1((offset + (i * 16u)));
     }
   }
   return arr;
@@ -31,14 +31,11 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 2, 4> l_a[4] = tint_symbol(a, 0u);
-  const matrix<float16_t, 2, 4> l_a_i = tint_symbol_1(a, 32u);
+  const matrix<float16_t, 2, 4> l_a[4] = a_load(0u);
+  const matrix<float16_t, 2, 4> l_a_i = a_load_1(32u);
   uint2 ubo_load_4 = a[2].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const vector<float16_t, 4> l_a_i_i = vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000192D71EE4C0(5,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_builtin.wgsl.expected.fxc.hlsl
index 549f1f1..f5b8fc8 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,14 +4,14 @@
   uint4 u[4];
 };
 
-matrix<float16_t, 2, 4> tint_symbol(uint4 buffer[4], uint offset) {
+matrix<float16_t, 2, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
@@ -20,7 +20,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 2> t = transpose(tint_symbol(u, 32u));
+  const matrix<float16_t, 4, 2> t = transpose(u_load(32u));
   uint2 ubo_load_4 = u[0].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -31,6 +31,3 @@
   const float16_t a = abs(vector<float16_t, 4>(ubo_load_5_xz[0], ubo_load_5_yw[0], ubo_load_5_xz[1], ubo_load_5_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000268E1507730(5,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.fxc.hlsl
index 8cd4d42..e3a2686 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -16,26 +16,26 @@
 void d(float16_t f_1) {
 }
 
-matrix<float16_t, 2, 4> tint_symbol_1(uint4 buffer[4], uint offset) {
+matrix<float16_t, 2, 4> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   return matrix<float16_t, 2, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]));
 }
 
-typedef matrix<float16_t, 2, 4> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 2, 4> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 2, 4> arr[4] = (matrix<float16_t, 2, 4>[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 16u)));
+      arr[i] = u_load_1((offset + (i * 16u)));
     }
   }
   return arr;
@@ -43,8 +43,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
-  b(tint_symbol_1(u, 16u));
+  a(u_load(0u));
+  b(u_load_1(16u));
   uint2 ubo_load_4 = u[1].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -55,9 +55,3 @@
   d(vector<float16_t, 4>(ubo_load_5_xz[0], ubo_load_5_yw[0], ubo_load_5_xz[1], ubo_load_5_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001E7EB824620(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001E7EB824620(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001E7EB824620(11,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001E7EB824620(14,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.fxc.hlsl
index db51daf..a5daa81 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.fxc.hlsl
@@ -5,26 +5,26 @@
 };
 static matrix<float16_t, 2, 4> p[4] = (matrix<float16_t, 2, 4>[4])0;
 
-matrix<float16_t, 2, 4> tint_symbol_1(uint4 buffer[4], uint offset) {
+matrix<float16_t, 2, 4> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   return matrix<float16_t, 2, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]));
 }
 
-typedef matrix<float16_t, 2, 4> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 2, 4> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 2, 4> arr[4] = (matrix<float16_t, 2, 4>[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 16u)));
+      arr[i] = u_load_1((offset + (i * 16u)));
     }
   }
   return arr;
@@ -32,8 +32,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
-  p[1] = tint_symbol_1(u, 32u);
+  p = u_load(0u);
+  p[1] = u_load_1(32u);
   uint2 ubo_load_4 = u[0].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -41,6 +41,3 @@
   p[1][0].x = float16_t(f16tof32(((u[0].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000022CF2B4B400(4,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.fxc.hlsl
index 7ea2f14..fc7f5b5 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -5,40 +5,40 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol_1(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+void s_store_1(uint offset, matrix<float16_t, 2, 4> value) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
 }
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 4> value[4]) {
-  matrix<float16_t, 2, 4> array[4] = value;
+void s_store(uint offset, matrix<float16_t, 2, 4> value[4]) {
+  matrix<float16_t, 2, 4> array_1[4] = value;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      tint_symbol_1(buffer, (offset + (i * 16u)), array[i]);
+      s_store_1((offset + (i * 16u)), array_1[i]);
     }
   }
 }
 
-matrix<float16_t, 2, 4> tint_symbol_4(uint4 buffer[4], uint offset) {
+matrix<float16_t, 2, 4> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   return matrix<float16_t, 2, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]));
 }
 
-typedef matrix<float16_t, 2, 4> tint_symbol_3_ret[4];
-tint_symbol_3_ret tint_symbol_3(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 2, 4> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 2, 4> arr[4] = (matrix<float16_t, 2, 4>[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_4(buffer, (offset + (i_1 * 16u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 16u)));
     }
   }
   return arr;
@@ -46,8 +46,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_3(u, 0u));
-  tint_symbol_1(s, 16u, tint_symbol_4(u, 32u));
+  s_store(0u, u_load(0u));
+  s_store_1(16u, u_load_1(32u));
   uint2 ubo_load_4 = u[0].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -55,7 +55,3 @@
   s.Store<float16_t>(16u, float16_t(f16tof32(((u[0].z) & 0xFFFF))));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000028AE9A12030(6,68-76): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000028AE9A12030(7,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
index ffeeb95..7211024 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -9,26 +9,26 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 2, 4> tint_symbol_3(uint4 buffer[4], uint offset) {
+matrix<float16_t, 2, 4> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   return matrix<float16_t, 2, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]));
 }
 
-typedef matrix<float16_t, 2, 4> tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 2, 4> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 2, 4> arr[4] = (matrix<float16_t, 2, 4>[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_3(buffer, (offset + (i_1 * 16u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 16u)));
     }
   }
   return arr;
@@ -42,8 +42,8 @@
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
-  w[1] = tint_symbol_3(u, 32u);
+  w = u_load(0u);
+  w[1] = u_load_1(32u);
   uint2 ubo_load_4 = u[0].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -56,6 +56,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001E5C5F5C8E0(4,20-28): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 101f0c8..92202fe 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,24 +10,24 @@
   return counter;
 }
 
-matrix<float16_t, 4, 2> tint_symbol_1(uint4 buffer[4], uint offset) {
+matrix<float16_t, 4, 2> a_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = a[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = a[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = a[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = a[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
-typedef matrix<float16_t, 4, 2> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 4, 2> a_load_ret[4];
+a_load_ret a_load(uint offset) {
   matrix<float16_t, 4, 2> arr[4] = (matrix<float16_t, 4, 2>[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_1(buffer, (offset + (i_1 * 16u)));
+      arr[i_1] = a_load_1((offset + (i_1 * 16u)));
     }
   }
   return arr;
@@ -37,13 +37,10 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const matrix<float16_t, 4, 2> l_a[4] = tint_symbol(a, 0u);
-  const matrix<float16_t, 4, 2> l_a_i = tint_symbol_1(a, (16u * uint(p_a_i_save)));
+  const matrix<float16_t, 4, 2> l_a[4] = a_load(0u);
+  const matrix<float16_t, 4, 2> l_a_i = a_load_1((16u * uint(p_a_i_save)));
   const uint scalar_offset_4 = (((16u * uint(p_a_i_save)) + (4u * uint(p_a_i_i_save)))) / 4;
   uint ubo_load_4 = a[scalar_offset_4 / 4][scalar_offset_4 % 4];
   const vector<float16_t, 2> l_a_i_i = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000252EDBAA7F0(11,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 1a318b5..d308421 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -4,24 +4,24 @@
   uint4 a[4];
 };
 
-matrix<float16_t, 4, 2> tint_symbol_1(uint4 buffer[4], uint offset) {
+matrix<float16_t, 4, 2> a_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = a[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = a[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = a[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = a[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
-typedef matrix<float16_t, 4, 2> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 4, 2> a_load_ret[4];
+a_load_ret a_load(uint offset) {
   matrix<float16_t, 4, 2> arr[4] = (matrix<float16_t, 4, 2>[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 16u)));
+      arr[i] = a_load_1((offset + (i * 16u)));
     }
   }
   return arr;
@@ -29,12 +29,9 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 2> l_a[4] = tint_symbol(a, 0u);
-  const matrix<float16_t, 4, 2> l_a_i = tint_symbol_1(a, 32u);
+  const matrix<float16_t, 4, 2> l_a[4] = a_load(0u);
+  const matrix<float16_t, 4, 2> l_a_i = a_load_1(32u);
   uint ubo_load_4 = a[2].y;
   const vector<float16_t, 2> l_a_i_i = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000014EAAC1C520(5,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_builtin.wgsl.expected.fxc.hlsl
index 5531d39..31ef9b3 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,27 +4,24 @@
   uint4 u[4];
 };
 
-matrix<float16_t, 4, 2> tint_symbol(uint4 buffer[4], uint offset) {
+matrix<float16_t, 4, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 2, 4> t = transpose(tint_symbol(u, 32u));
+  const matrix<float16_t, 2, 4> t = transpose(u_load(32u));
   uint ubo_load_4 = u[0].y;
   const float16_t l = length(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))).yx);
   uint ubo_load_5 = u[0].y;
   const float16_t a = abs(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_5 & 0xFFFF)), float16_t(f16tof32(ubo_load_5 >> 16))).yx.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000025103259540(5,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.fxc.hlsl
index 3a1afc5..47bbd7e 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -16,24 +16,24 @@
 void d(float16_t f_1) {
 }
 
-matrix<float16_t, 4, 2> tint_symbol_1(uint4 buffer[4], uint offset) {
+matrix<float16_t, 4, 2> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
-typedef matrix<float16_t, 4, 2> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 4, 2> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 4, 2> arr[4] = (matrix<float16_t, 4, 2>[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 16u)));
+      arr[i] = u_load_1((offset + (i * 16u)));
     }
   }
   return arr;
@@ -41,17 +41,11 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
-  b(tint_symbol_1(u, 16u));
+  a(u_load(0u));
+  b(u_load_1(16u));
   uint ubo_load_4 = u[1].x;
   c(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))).yx);
   uint ubo_load_5 = u[1].x;
   d(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_5 & 0xFFFF)), float16_t(f16tof32(ubo_load_5 >> 16))).yx.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000029B724CE850(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000029B724CE850(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000029B724CE850(11,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000029B724CE850(14,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.fxc.hlsl
index e57ed87..e010b5a 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.fxc.hlsl
@@ -5,24 +5,24 @@
 };
 static matrix<float16_t, 4, 2> p[4] = (matrix<float16_t, 4, 2>[4])0;
 
-matrix<float16_t, 4, 2> tint_symbol_1(uint4 buffer[4], uint offset) {
+matrix<float16_t, 4, 2> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
-typedef matrix<float16_t, 4, 2> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 4, 2> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 4, 2> arr[4] = (matrix<float16_t, 4, 2>[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 16u)));
+      arr[i] = u_load_1((offset + (i * 16u)));
     }
   }
   return arr;
@@ -30,13 +30,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
-  p[1] = tint_symbol_1(u, 32u);
+  p = u_load(0u);
+  p[1] = u_load_1(32u);
   uint ubo_load_4 = u[0].y;
   p[1][0] = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))).yx;
   p[1][0].x = float16_t(f16tof32(((u[0].y) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000015CB4D295E0(4,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.fxc.hlsl
index 489bfd1..002fae6 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -5,40 +5,40 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol_1(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 12u), value[3u]);
+void s_store_1(uint offset, matrix<float16_t, 4, 2> value) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
+  s.Store<vector<float16_t, 2> >((offset + 12u), value[3u]);
 }
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 2> value[4]) {
-  matrix<float16_t, 4, 2> array[4] = value;
+void s_store(uint offset, matrix<float16_t, 4, 2> value[4]) {
+  matrix<float16_t, 4, 2> array_1[4] = value;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      tint_symbol_1(buffer, (offset + (i * 16u)), array[i]);
+      s_store_1((offset + (i * 16u)), array_1[i]);
     }
   }
 }
 
-matrix<float16_t, 4, 2> tint_symbol_4(uint4 buffer[4], uint offset) {
+matrix<float16_t, 4, 2> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
-typedef matrix<float16_t, 4, 2> tint_symbol_3_ret[4];
-tint_symbol_3_ret tint_symbol_3(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 4, 2> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 4, 2> arr[4] = (matrix<float16_t, 4, 2>[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_4(buffer, (offset + (i_1 * 16u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 16u)));
     }
   }
   return arr;
@@ -46,14 +46,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_3(u, 0u));
-  tint_symbol_1(s, 16u, tint_symbol_4(u, 32u));
+  s_store(0u, u_load(0u));
+  s_store_1(16u, u_load_1(32u));
   uint ubo_load_4 = u[0].y;
   s.Store<vector<float16_t, 2> >(16u, vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))).yx);
   s.Store<float16_t>(16u, float16_t(f16tof32(((u[0].y) & 0xFFFF))));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F88B180520(6,68-76): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F88B180520(7,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
index 03d7569..6804f4a 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -9,24 +9,24 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 4, 2> tint_symbol_3(uint4 buffer[4], uint offset) {
+matrix<float16_t, 4, 2> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
-typedef matrix<float16_t, 4, 2> tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[4], uint offset) {
+typedef matrix<float16_t, 4, 2> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 4, 2> arr[4] = (matrix<float16_t, 4, 2>[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_3(buffer, (offset + (i_1 * 16u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 16u)));
     }
   }
   return arr;
@@ -40,8 +40,8 @@
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
-  w[1] = tint_symbol_3(u, 32u);
+  w = u_load(0u);
+  w[1] = u_load_1(32u);
   uint ubo_load_4 = u[0].y;
   w[1][0] = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))).yx;
   w[1][0].x = float16_t(f16tof32(((u[0].y) & 0xFFFF)));
@@ -52,6 +52,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000020D4DFDDE90(4,20-28): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index eed8899..37dc3fd 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,36 +10,36 @@
   return counter;
 }
 
-matrix<float16_t, 4, 3> tint_symbol_1(uint4 buffer[8], uint offset) {
+matrix<float16_t, 4, 3> a_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = a[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
   return matrix<float16_t, 4, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]));
 }
 
-typedef matrix<float16_t, 4, 3> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[8], uint offset) {
+typedef matrix<float16_t, 4, 3> a_load_ret[4];
+a_load_ret a_load(uint offset) {
   matrix<float16_t, 4, 3> arr[4] = (matrix<float16_t, 4, 3>[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_1(buffer, (offset + (i_1 * 32u)));
+      arr[i_1] = a_load_1((offset + (i_1 * 32u)));
     }
   }
   return arr;
@@ -49,8 +49,8 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const matrix<float16_t, 4, 3> l_a[4] = tint_symbol(a, 0u);
-  const matrix<float16_t, 4, 3> l_a_i = tint_symbol_1(a, (32u * uint(p_a_i_save)));
+  const matrix<float16_t, 4, 3> l_a[4] = a_load(0u);
+  const matrix<float16_t, 4, 3> l_a_i = a_load_1((32u * uint(p_a_i_save)));
   const uint scalar_offset_4 = (((32u * uint(p_a_i_save)) + (8u * uint(p_a_i_i_save)))) / 4;
   uint4 ubo_load_9 = a[scalar_offset_4 / 4];
   uint2 ubo_load_8 = ((scalar_offset_4 & 2) ? ubo_load_9.zw : ubo_load_9.xy);
@@ -59,6 +59,3 @@
   const vector<float16_t, 3> l_a_i_i = vector<float16_t, 3>(ubo_load_8_xz[0], ubo_load_8_y, ubo_load_8_xz[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000180EC89DCE0(11,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index acc35b5..9c20490 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -4,36 +4,36 @@
   uint4 a[8];
 };
 
-matrix<float16_t, 4, 3> tint_symbol_1(uint4 buffer[8], uint offset) {
+matrix<float16_t, 4, 3> a_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = a[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
   return matrix<float16_t, 4, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]));
 }
 
-typedef matrix<float16_t, 4, 3> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[8], uint offset) {
+typedef matrix<float16_t, 4, 3> a_load_ret[4];
+a_load_ret a_load(uint offset) {
   matrix<float16_t, 4, 3> arr[4] = (matrix<float16_t, 4, 3>[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 32u)));
+      arr[i] = a_load_1((offset + (i * 32u)));
     }
   }
   return arr;
@@ -41,14 +41,11 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 3> l_a[4] = tint_symbol(a, 0u);
-  const matrix<float16_t, 4, 3> l_a_i = tint_symbol_1(a, 64u);
+  const matrix<float16_t, 4, 3> l_a[4] = a_load(0u);
+  const matrix<float16_t, 4, 3> l_a_i = a_load_1(64u);
   uint2 ubo_load_8 = a[4].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
   const vector<float16_t, 3> l_a_i_i = vector<float16_t, 3>(ubo_load_8_xz[0], ubo_load_8_y, ubo_load_8_xz[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000021B182DE800(5,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_builtin.wgsl.expected.fxc.hlsl
index aa2cb40..cf6fc6a 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,24 +4,24 @@
   uint4 u[8];
 };
 
-matrix<float16_t, 4, 3> tint_symbol(uint4 buffer[8], uint offset) {
+matrix<float16_t, 4, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 3, 4> t = transpose(tint_symbol(u, 64u));
+  const matrix<float16_t, 3, 4> t = transpose(u_load(64u));
   uint2 ubo_load_8 = u[0].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
@@ -41,6 +41,3 @@
   const float16_t a = abs(vector<float16_t, 3>(ubo_load_9_xz[0], ubo_load_9_y, ubo_load_9_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002C9B1C5A400(5,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.fxc.hlsl
index 88a9d54..cbf470b 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -16,36 +16,36 @@
 void d(float16_t f_1) {
 }
 
-matrix<float16_t, 4, 3> tint_symbol_1(uint4 buffer[8], uint offset) {
+matrix<float16_t, 4, 3> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
   return matrix<float16_t, 4, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]));
 }
 
-typedef matrix<float16_t, 4, 3> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[8], uint offset) {
+typedef matrix<float16_t, 4, 3> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 4, 3> arr[4] = (matrix<float16_t, 4, 3>[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 32u)));
+      arr[i] = u_load_1((offset + (i * 32u)));
     }
   }
   return arr;
@@ -53,8 +53,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
-  b(tint_symbol_1(u, 32u));
+  a(u_load(0u));
+  b(u_load_1(32u));
   uint2 ubo_load_8 = u[2].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
@@ -65,9 +65,3 @@
   d(vector<float16_t, 3>(ubo_load_9_xz[0], ubo_load_9_y, ubo_load_9_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000296784C0E70(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000296784C0E70(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000296784C0E70(11,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000296784C0E70(14,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.fxc.hlsl
index 71ba00c..da60046 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.fxc.hlsl
@@ -5,36 +5,36 @@
 };
 static matrix<float16_t, 4, 3> p[4] = (matrix<float16_t, 4, 3>[4])0;
 
-matrix<float16_t, 4, 3> tint_symbol_1(uint4 buffer[8], uint offset) {
+matrix<float16_t, 4, 3> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
   return matrix<float16_t, 4, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]));
 }
 
-typedef matrix<float16_t, 4, 3> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[8], uint offset) {
+typedef matrix<float16_t, 4, 3> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 4, 3> arr[4] = (matrix<float16_t, 4, 3>[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 32u)));
+      arr[i] = u_load_1((offset + (i * 32u)));
     }
   }
   return arr;
@@ -42,8 +42,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
-  p[1] = tint_symbol_1(u, 64u);
+  p = u_load(0u);
+  p[1] = u_load_1(64u);
   uint2 ubo_load_8 = u[0].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
@@ -51,6 +51,3 @@
   p[1][0].x = float16_t(f16tof32(((u[0].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000222F970C590(4,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.fxc.hlsl
index 567a5eb..359599b 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -5,52 +5,52 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol_1(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 24u), value[3u]);
+void s_store_1(uint offset, matrix<float16_t, 4, 3> value) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
+  s.Store<vector<float16_t, 3> >((offset + 24u), value[3u]);
 }
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 3> value[4]) {
-  matrix<float16_t, 4, 3> array[4] = value;
+void s_store(uint offset, matrix<float16_t, 4, 3> value[4]) {
+  matrix<float16_t, 4, 3> array_1[4] = value;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      tint_symbol_1(buffer, (offset + (i * 32u)), array[i]);
+      s_store_1((offset + (i * 32u)), array_1[i]);
     }
   }
 }
 
-matrix<float16_t, 4, 3> tint_symbol_4(uint4 buffer[8], uint offset) {
+matrix<float16_t, 4, 3> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
   return matrix<float16_t, 4, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]));
 }
 
-typedef matrix<float16_t, 4, 3> tint_symbol_3_ret[4];
-tint_symbol_3_ret tint_symbol_3(uint4 buffer[8], uint offset) {
+typedef matrix<float16_t, 4, 3> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 4, 3> arr[4] = (matrix<float16_t, 4, 3>[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_4(buffer, (offset + (i_1 * 32u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 32u)));
     }
   }
   return arr;
@@ -58,8 +58,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_3(u, 0u));
-  tint_symbol_1(s, 32u, tint_symbol_4(u, 64u));
+  s_store(0u, u_load(0u));
+  s_store_1(32u, u_load_1(64u));
   uint2 ubo_load_8 = u[0].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
@@ -67,7 +67,3 @@
   s.Store<float16_t>(32u, float16_t(f16tof32(((u[0].z) & 0xFFFF))));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000021F13DB33D0(6,68-76): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000021F13DB33D0(7,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
index 3f7cf0d..2da89b5 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -9,36 +9,36 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 4, 3> tint_symbol_3(uint4 buffer[8], uint offset) {
+matrix<float16_t, 4, 3> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
   return matrix<float16_t, 4, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]));
 }
 
-typedef matrix<float16_t, 4, 3> tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[8], uint offset) {
+typedef matrix<float16_t, 4, 3> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 4, 3> arr[4] = (matrix<float16_t, 4, 3>[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_3(buffer, (offset + (i_1 * 32u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 32u)));
     }
   }
   return arr;
@@ -52,8 +52,8 @@
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
-  w[1] = tint_symbol_3(u, 64u);
+  w = u_load(0u);
+  w[1] = u_load_1(64u);
   uint2 ubo_load_8 = u[0].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
@@ -66,6 +66,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001D6F2EDF360(4,20-28): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index c58ef9c..9c06ba1 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,36 +10,36 @@
   return counter;
 }
 
-matrix<float16_t, 4, 4> tint_symbol_1(uint4 buffer[8], uint offset) {
+matrix<float16_t, 4, 4> a_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = a[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
   return matrix<float16_t, 4, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]), vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]));
 }
 
-typedef matrix<float16_t, 4, 4> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[8], uint offset) {
+typedef matrix<float16_t, 4, 4> a_load_ret[4];
+a_load_ret a_load(uint offset) {
   matrix<float16_t, 4, 4> arr[4] = (matrix<float16_t, 4, 4>[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_1(buffer, (offset + (i_1 * 32u)));
+      arr[i_1] = a_load_1((offset + (i_1 * 32u)));
     }
   }
   return arr;
@@ -49,8 +49,8 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const matrix<float16_t, 4, 4> l_a[4] = tint_symbol(a, 0u);
-  const matrix<float16_t, 4, 4> l_a_i = tint_symbol_1(a, (32u * uint(p_a_i_save)));
+  const matrix<float16_t, 4, 4> l_a[4] = a_load(0u);
+  const matrix<float16_t, 4, 4> l_a_i = a_load_1((32u * uint(p_a_i_save)));
   const uint scalar_offset_4 = (((32u * uint(p_a_i_save)) + (8u * uint(p_a_i_i_save)))) / 4;
   uint4 ubo_load_9 = a[scalar_offset_4 / 4];
   uint2 ubo_load_8 = ((scalar_offset_4 & 2) ? ubo_load_9.zw : ubo_load_9.xy);
@@ -59,6 +59,3 @@
   const vector<float16_t, 4> l_a_i_i = vector<float16_t, 4>(ubo_load_8_xz[0], ubo_load_8_yw[0], ubo_load_8_xz[1], ubo_load_8_yw[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F4B0E9BB50(11,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index d0b7cb8..f03cef5 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -4,36 +4,36 @@
   uint4 a[8];
 };
 
-matrix<float16_t, 4, 4> tint_symbol_1(uint4 buffer[8], uint offset) {
+matrix<float16_t, 4, 4> a_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = a[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
   return matrix<float16_t, 4, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]), vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]));
 }
 
-typedef matrix<float16_t, 4, 4> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[8], uint offset) {
+typedef matrix<float16_t, 4, 4> a_load_ret[4];
+a_load_ret a_load(uint offset) {
   matrix<float16_t, 4, 4> arr[4] = (matrix<float16_t, 4, 4>[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 32u)));
+      arr[i] = a_load_1((offset + (i * 32u)));
     }
   }
   return arr;
@@ -41,14 +41,11 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 4> l_a[4] = tint_symbol(a, 0u);
-  const matrix<float16_t, 4, 4> l_a_i = tint_symbol_1(a, 64u);
+  const matrix<float16_t, 4, 4> l_a[4] = a_load(0u);
+  const matrix<float16_t, 4, 4> l_a_i = a_load_1(64u);
   uint2 ubo_load_8 = a[4].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
   const vector<float16_t, 4> l_a_i_i = vector<float16_t, 4>(ubo_load_8_xz[0], ubo_load_8_yw[0], ubo_load_8_xz[1], ubo_load_8_yw[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001586950D8A0(5,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_builtin.wgsl.expected.fxc.hlsl
index dbd9a19..16a8846 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,24 +4,24 @@
   uint4 u[8];
 };
 
-matrix<float16_t, 4, 4> tint_symbol(uint4 buffer[8], uint offset) {
+matrix<float16_t, 4, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 4> t = transpose(tint_symbol(u, 64u));
+  const matrix<float16_t, 4, 4> t = transpose(u_load(64u));
   uint2 ubo_load_8 = u[0].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
@@ -41,6 +41,3 @@
   const float16_t a = abs(vector<float16_t, 4>(ubo_load_9_xz[0], ubo_load_9_yw[0], ubo_load_9_xz[1], ubo_load_9_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002574E068B20(5,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.fxc.hlsl
index 62edde6..49b921e 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -16,36 +16,36 @@
 void d(float16_t f_1) {
 }
 
-matrix<float16_t, 4, 4> tint_symbol_1(uint4 buffer[8], uint offset) {
+matrix<float16_t, 4, 4> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
   return matrix<float16_t, 4, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]), vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]));
 }
 
-typedef matrix<float16_t, 4, 4> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[8], uint offset) {
+typedef matrix<float16_t, 4, 4> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 4, 4> arr[4] = (matrix<float16_t, 4, 4>[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 32u)));
+      arr[i] = u_load_1((offset + (i * 32u)));
     }
   }
   return arr;
@@ -53,8 +53,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
-  b(tint_symbol_1(u, 32u));
+  a(u_load(0u));
+  b(u_load_1(32u));
   uint2 ubo_load_8 = u[2].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
@@ -65,9 +65,3 @@
   d(vector<float16_t, 4>(ubo_load_9_xz[0], ubo_load_9_yw[0], ubo_load_9_xz[1], ubo_load_9_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001FAC4F2FC00(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001FAC4F2FC00(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001FAC4F2FC00(11,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001FAC4F2FC00(14,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.fxc.hlsl
index 7983cff..16caf61 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.fxc.hlsl
@@ -5,36 +5,36 @@
 };
 static matrix<float16_t, 4, 4> p[4] = (matrix<float16_t, 4, 4>[4])0;
 
-matrix<float16_t, 4, 4> tint_symbol_1(uint4 buffer[8], uint offset) {
+matrix<float16_t, 4, 4> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
   return matrix<float16_t, 4, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]), vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]));
 }
 
-typedef matrix<float16_t, 4, 4> tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[8], uint offset) {
+typedef matrix<float16_t, 4, 4> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 4, 4> arr[4] = (matrix<float16_t, 4, 4>[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 32u)));
+      arr[i] = u_load_1((offset + (i * 32u)));
     }
   }
   return arr;
@@ -42,8 +42,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
-  p[1] = tint_symbol_1(u, 64u);
+  p = u_load(0u);
+  p[1] = u_load_1(64u);
   uint2 ubo_load_8 = u[0].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
@@ -51,6 +51,3 @@
   p[1][0].x = float16_t(f16tof32(((u[0].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000219133D8C70(4,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.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.fxc.hlsl
index 85e99c8..3f0207a 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -5,52 +5,52 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol_1(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 24u), value[3u]);
+void s_store_1(uint offset, matrix<float16_t, 4, 4> value) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
+  s.Store<vector<float16_t, 4> >((offset + 24u), value[3u]);
 }
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 4> value[4]) {
-  matrix<float16_t, 4, 4> array[4] = value;
+void s_store(uint offset, matrix<float16_t, 4, 4> value[4]) {
+  matrix<float16_t, 4, 4> array_1[4] = value;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      tint_symbol_1(buffer, (offset + (i * 32u)), array[i]);
+      s_store_1((offset + (i * 32u)), array_1[i]);
     }
   }
 }
 
-matrix<float16_t, 4, 4> tint_symbol_4(uint4 buffer[8], uint offset) {
+matrix<float16_t, 4, 4> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
   return matrix<float16_t, 4, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]), vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]));
 }
 
-typedef matrix<float16_t, 4, 4> tint_symbol_3_ret[4];
-tint_symbol_3_ret tint_symbol_3(uint4 buffer[8], uint offset) {
+typedef matrix<float16_t, 4, 4> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 4, 4> arr[4] = (matrix<float16_t, 4, 4>[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_4(buffer, (offset + (i_1 * 32u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 32u)));
     }
   }
   return arr;
@@ -58,8 +58,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_3(u, 0u));
-  tint_symbol_1(s, 32u, tint_symbol_4(u, 64u));
+  s_store(0u, u_load(0u));
+  s_store_1(32u, u_load_1(64u));
   uint2 ubo_load_8 = u[0].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
@@ -67,7 +67,3 @@
   s.Store<float16_t>(32u, float16_t(f16tof32(((u[0].z) & 0xFFFF))));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002420B3F4EF0(6,68-76): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002420B3F4EF0(7,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
index ccb834a..cada414 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -9,36 +9,36 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 4, 4> tint_symbol_3(uint4 buffer[8], uint offset) {
+matrix<float16_t, 4, 4> u_load_1(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
   return matrix<float16_t, 4, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]), vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]));
 }
 
-typedef matrix<float16_t, 4, 4> tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[8], uint offset) {
+typedef matrix<float16_t, 4, 4> u_load_ret[4];
+u_load_ret u_load(uint offset) {
   matrix<float16_t, 4, 4> arr[4] = (matrix<float16_t, 4, 4>[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_3(buffer, (offset + (i_1 * 32u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 32u)));
     }
   }
   return arr;
@@ -52,8 +52,8 @@
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
-  w[1] = tint_symbol_3(u, 64u);
+  w = u_load(0u);
+  w[1] = u_load_1(64u);
   uint2 ubo_load_8 = u[0].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
@@ -66,6 +66,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002B4C90BEEA0(4,20-28): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 7ca22da..99a97c7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -17,41 +17,41 @@
   return counter;
 }
 
-matrix<float16_t, 2, 2> tint_symbol_8(uint4 buffer[64], uint offset) {
+matrix<float16_t, 2, 2> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = a[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = a[scalar_offset_1 / 4][scalar_offset_1 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))));
 }
 
-Inner tint_symbol_7(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_11 = {tint_symbol_8(buffer, (offset + 0u))};
-  return tint_symbol_11;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  return tint_symbol_4;
 }
 
-typedef Inner tint_symbol_6_ret[4];
-tint_symbol_6_ret tint_symbol_6(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_7(buffer, (offset + (i_1 * 64u)));
+      arr[i_1] = a_load_3((offset + (i_1 * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_5(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_12 = {tint_symbol_6(buffer, (offset + 0u))};
-  return tint_symbol_12;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  return tint_symbol_5;
 }
 
-typedef Outer tint_symbol_4_ret[4];
-tint_symbol_4_ret tint_symbol_4(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_2 = 0u; (i_2 < 4u); i_2 = (i_2 + 1u)) {
-      arr_1[i_2] = tint_symbol_5(buffer, (offset + (i_2 * 256u)));
+      arr_1[i_2] = a_load_1((offset + (i_2 * 256u)));
     }
   }
   return arr_1;
@@ -62,11 +62,11 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = tint_symbol_4(a, 0u);
-  const Outer l_a_i = tint_symbol_5(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = tint_symbol_6(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = tint_symbol_7(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
-  const matrix<float16_t, 2, 2> l_a_i_a_i_m = tint_symbol_8(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const matrix<float16_t, 2, 2> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_2 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (4u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint ubo_load_2 = a[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const vector<float16_t, 2> l_a_i_a_i_m_i = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16)));
@@ -79,6 +79,3 @@
   const float16_t l_a_i_a_i_m_i_i = float16_t(f16tof32(((a[scalar_offset_index / 4][scalar_offset_index % 4] >> (scalar_offset_bytes % 4 == 0 ? 0 : 16)) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000270DFBEAD70(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 64dbf1e..35767fe 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -11,41 +11,41 @@
   uint4 a[64];
 };
 
-matrix<float16_t, 2, 2> tint_symbol_4(uint4 buffer[64], uint offset) {
+matrix<float16_t, 2, 2> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = a[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = a[scalar_offset_1 / 4][scalar_offset_1 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))));
 }
 
-Inner tint_symbol_3(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_7 = {tint_symbol_4(buffer, (offset + 0u))};
-  return tint_symbol_7;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  return tint_symbol;
 }
 
-typedef Inner tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_3(buffer, (offset + (i * 64u)));
+      arr[i] = a_load_3((offset + (i * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_1(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_8 = {tint_symbol_2(buffer, (offset + 0u))};
-  return tint_symbol_8;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  return tint_symbol_1;
 }
 
-typedef Outer tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr_1[i_1] = tint_symbol_1(buffer, (offset + (i_1 * 256u)));
+      arr_1[i_1] = a_load_1((offset + (i_1 * 256u)));
     }
   }
   return arr_1;
@@ -53,16 +53,13 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = tint_symbol(a, 0u);
-  const Outer l_a_3 = tint_symbol_1(a, 768u);
-  const Inner l_a_3_a[4] = tint_symbol_2(a, 768u);
-  const Inner l_a_3_a_2 = tint_symbol_3(a, 896u);
-  const matrix<float16_t, 2, 2> l_a_3_a_2_m = tint_symbol_4(a, 896u);
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_3 = a_load_1(768u);
+  const Inner l_a_3_a[4] = a_load_2(768u);
+  const Inner l_a_3_a_2 = a_load_3(896u);
+  const matrix<float16_t, 2, 2> l_a_3_a_2_m = a_load_4(896u);
   uint ubo_load_2 = a[56].y;
   const vector<float16_t, 2> l_a_3_a_2_m_1 = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16)));
   const float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(((a[56].y) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000025C8106DF60(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_builtin.wgsl.expected.fxc.hlsl
index f83ab60..f1c2ae1 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,23 +4,20 @@
   uint4 u[32];
 };
 
-matrix<float16_t, 2, 2> tint_symbol(uint4 buffer[32], uint offset) {
+matrix<float16_t, 2, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 2, 2> t = transpose(tint_symbol(u, 260u));
+  const matrix<float16_t, 2, 2> t = transpose(u_load(260u));
   uint ubo_load_2 = u[0].z;
   const float16_t l = length(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))).yx);
   uint ubo_load_3 = u[0].z;
   const float16_t a = abs(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))).yx.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002973821CED0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.fxc.hlsl
index ca733ad..32e53dc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -25,27 +25,27 @@
 void e(float16_t f_1) {
 }
 
-matrix<float16_t, 2, 2> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 2, 2> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4]), tint_symbol_3(buffer, (offset + 4u)), asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -53,15 +53,12 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
-  b(tint_symbol_1(u, 256u));
-  c(tint_symbol_3(u, 260u));
+  a(u_load(0u));
+  b(u_load_1(256u));
+  c(u_load_3(260u));
   uint ubo_load_2 = u[0].z;
   d(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))).yx);
   uint ubo_load_3 = u[0].z;
   e(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))).yx.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000029EA87296E0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.fxc.hlsl
index e1bce07..b62cdf8 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.fxc.hlsl
@@ -11,27 +11,27 @@
 };
 static S p[4] = (S[4])0;
 
-matrix<float16_t, 2, 2> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 2, 2> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4]), tint_symbol_3(buffer, (offset + 4u)), asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -39,13 +39,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
-  p[1] = tint_symbol_1(u, 256u);
-  p[3].m = tint_symbol_3(u, 260u);
+  p = u_load(0u);
+  p[1] = u_load_1(256u);
+  p[3].m = u_load_3(260u);
   uint ubo_load_2 = u[0].z;
   p[1].m[0] = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))).yx;
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000172713CA4A0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.fxc.hlsl
index fedbc87..d3b9fb9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -11,47 +11,47 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol_3(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+void s_store_3(uint offset, matrix<float16_t, 2, 2> value) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
 }
 
-void tint_symbol_1(RWByteAddressBuffer buffer, uint offset, S value) {
-  buffer.Store((offset + 0u), asuint(value.before));
-  tint_symbol_3(buffer, (offset + 4u), value.m);
-  buffer.Store((offset + 64u), asuint(value.after));
+void s_store_1(uint offset, S value) {
+  s.Store((offset + 0u), asuint(value.before));
+  s_store_3((offset + 4u), value.m);
+  s.Store((offset + 64u), asuint(value.after));
 }
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, S value[4]) {
-  S array[4] = value;
+void s_store(uint offset, S value[4]) {
+  S array_1[4] = value;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      tint_symbol_1(buffer, (offset + (i * 128u)), array[i]);
+      s_store_1((offset + (i * 128u)), array_1[i]);
     }
   }
 }
 
-matrix<float16_t, 2, 2> tint_symbol_8(uint4 buffer[32], uint offset) {
+matrix<float16_t, 2, 2> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))));
 }
 
-S tint_symbol_6(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_10 = {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4]), tint_symbol_8(buffer, (offset + 4u)), asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])};
-  return tint_symbol_10;
+  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_5_ret[4];
-tint_symbol_5_ret tint_symbol_5(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_6(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -59,13 +59,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_5(u, 0u));
-  tint_symbol_1(s, 128u, tint_symbol_6(u, 256u));
-  tint_symbol_3(s, 388u, tint_symbol_8(u, 260u));
+  s_store(0u, u_load(0u));
+  s_store_1(128u, u_load_1(256u));
+  s_store_3(388u, u_load_3(260u));
   uint ubo_load_2 = u[0].z;
   s.Store<vector<float16_t, 2> >(132u, vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))).yx);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001A0472DA2E0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
index 50372ab..a5690f8 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -15,27 +15,27 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 2, 2> tint_symbol_5(uint4 buffer[32], uint offset) {
+matrix<float16_t, 2, 2> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))));
 }
 
-S tint_symbol_3(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_8 = {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4]), tint_symbol_5(buffer, (offset + 4u)), asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])};
-  return tint_symbol_8;
+  const S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  return tint_symbol_3;
 }
 
-typedef S tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_3(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -45,14 +45,14 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_7 = (S)0;
-      w[i] = tint_symbol_7;
+      const S tint_symbol_2 = (S)0;
+      w[i] = tint_symbol_2;
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
-  w[1] = tint_symbol_3(u, 256u);
-  w[3].m = tint_symbol_5(u, 260u);
+  w = u_load(0u);
+  w[1] = u_load_1(256u);
+  w[3].m = u_load_3(260u);
   uint ubo_load_2 = u[0].z;
   w[1].m[0] = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))).yx;
 }
@@ -62,6 +62,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001CABCCF0160(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 1b18347..4e27d65 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -17,47 +17,47 @@
   return counter;
 }
 
-matrix<float16_t, 2, 3> tint_symbol_8(uint4 buffer[64], uint offset) {
+matrix<float16_t, 2, 3> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   return matrix<float16_t, 2, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]));
 }
 
-Inner tint_symbol_7(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_11 = {tint_symbol_8(buffer, (offset + 0u))};
-  return tint_symbol_11;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  return tint_symbol_4;
 }
 
-typedef Inner tint_symbol_6_ret[4];
-tint_symbol_6_ret tint_symbol_6(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_7(buffer, (offset + (i_1 * 64u)));
+      arr[i_1] = a_load_3((offset + (i_1 * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_5(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_12 = {tint_symbol_6(buffer, (offset + 0u))};
-  return tint_symbol_12;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  return tint_symbol_5;
 }
 
-typedef Outer tint_symbol_4_ret[4];
-tint_symbol_4_ret tint_symbol_4(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_2 = 0u; (i_2 < 4u); i_2 = (i_2 + 1u)) {
-      arr_1[i_2] = tint_symbol_5(buffer, (offset + (i_2 * 256u)));
+      arr_1[i_2] = a_load_1((offset + (i_2 * 256u)));
     }
   }
   return arr_1;
@@ -68,11 +68,11 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = tint_symbol_4(a, 0u);
-  const Outer l_a_i = tint_symbol_5(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = tint_symbol_6(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = tint_symbol_7(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
-  const matrix<float16_t, 2, 3> l_a_i_a_i_m = tint_symbol_8(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const matrix<float16_t, 2, 3> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_2 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
@@ -88,6 +88,3 @@
   const float16_t l_a_i_a_i_m_i_i = float16_t(f16tof32(((a[scalar_offset_index / 4][scalar_offset_index % 4] >> (scalar_offset_bytes % 4 == 0 ? 0 : 16)) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000021B8B701620(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index b6de301..2a58ec2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -11,47 +11,47 @@
   uint4 a[64];
 };
 
-matrix<float16_t, 2, 3> tint_symbol_4(uint4 buffer[64], uint offset) {
+matrix<float16_t, 2, 3> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   return matrix<float16_t, 2, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]));
 }
 
-Inner tint_symbol_3(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_7 = {tint_symbol_4(buffer, (offset + 0u))};
-  return tint_symbol_7;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  return tint_symbol;
 }
 
-typedef Inner tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_3(buffer, (offset + (i * 64u)));
+      arr[i] = a_load_3((offset + (i * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_1(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_8 = {tint_symbol_2(buffer, (offset + 0u))};
-  return tint_symbol_8;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  return tint_symbol_1;
 }
 
-typedef Outer tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr_1[i_1] = tint_symbol_1(buffer, (offset + (i_1 * 256u)));
+      arr_1[i_1] = a_load_1((offset + (i_1 * 256u)));
     }
   }
   return arr_1;
@@ -59,11 +59,11 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = tint_symbol(a, 0u);
-  const Outer l_a_3 = tint_symbol_1(a, 768u);
-  const Inner l_a_3_a[4] = tint_symbol_2(a, 768u);
-  const Inner l_a_3_a_2 = tint_symbol_3(a, 896u);
-  const matrix<float16_t, 2, 3> l_a_3_a_2_m = tint_symbol_4(a, 896u);
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_3 = a_load_1(768u);
+  const Inner l_a_3_a[4] = a_load_2(768u);
+  const Inner l_a_3_a_2 = a_load_3(896u);
+  const matrix<float16_t, 2, 3> l_a_3_a_2_m = a_load_4(896u);
   uint2 ubo_load_4 = a[56].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -71,6 +71,3 @@
   const float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(((a[56].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000016A3B044D10(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_builtin.wgsl.expected.fxc.hlsl
index d695652..dc79792 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,14 +4,14 @@
   uint4 u[32];
 };
 
-matrix<float16_t, 2, 3> tint_symbol(uint4 buffer[32], uint offset) {
+matrix<float16_t, 2, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
@@ -20,7 +20,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 3, 2> t = transpose(tint_symbol(u, 264u));
+  const matrix<float16_t, 3, 2> t = transpose(u_load(264u));
   uint2 ubo_load_4 = u[1].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -31,6 +31,3 @@
   const float16_t a = abs(vector<float16_t, 3>(ubo_load_5_xz[0], ubo_load_5_y, ubo_load_5_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002BEEDB9DED0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.fxc.hlsl
index aeb6e6f..2d4fca0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -25,33 +25,33 @@
 void e(float16_t f_1) {
 }
 
-matrix<float16_t, 2, 3> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 2, 3> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   return matrix<float16_t, 2, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4]), tint_symbol_3(buffer, (offset + 8u)), asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -59,9 +59,9 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
-  b(tint_symbol_1(u, 256u));
-  c(tint_symbol_3(u, 264u));
+  a(u_load(0u));
+  b(u_load_1(256u));
+  c(u_load_3(264u));
   uint2 ubo_load_4 = u[1].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -72,6 +72,3 @@
   e(vector<float16_t, 3>(ubo_load_5_xz[0], ubo_load_5_y, ubo_load_5_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002273DEDC980(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.fxc.hlsl
index b82501d..c91cff0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.fxc.hlsl
@@ -11,33 +11,33 @@
 };
 static S p[4] = (S[4])0;
 
-matrix<float16_t, 2, 3> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 2, 3> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   return matrix<float16_t, 2, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4]), tint_symbol_3(buffer, (offset + 8u)), asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -45,15 +45,12 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
-  p[1] = tint_symbol_1(u, 256u);
-  p[3].m = tint_symbol_3(u, 264u);
+  p = u_load(0u);
+  p[1] = u_load_1(256u);
+  p[3].m = u_load_3(264u);
   uint2 ubo_load_4 = u[1].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   p[1].m[0] = vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]).zxy;
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000296576AF9E0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.fxc.hlsl
index ecf95e4..c7e1041 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -11,53 +11,53 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol_3(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+void s_store_3(uint offset, matrix<float16_t, 2, 3> value) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
 }
 
-void tint_symbol_1(RWByteAddressBuffer buffer, uint offset, S value) {
-  buffer.Store((offset + 0u), asuint(value.before));
-  tint_symbol_3(buffer, (offset + 8u), value.m);
-  buffer.Store((offset + 64u), asuint(value.after));
+void s_store_1(uint offset, S value) {
+  s.Store((offset + 0u), asuint(value.before));
+  s_store_3((offset + 8u), value.m);
+  s.Store((offset + 64u), asuint(value.after));
 }
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, S value[4]) {
-  S array[4] = value;
+void s_store(uint offset, S value[4]) {
+  S array_1[4] = value;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      tint_symbol_1(buffer, (offset + (i * 128u)), array[i]);
+      s_store_1((offset + (i * 128u)), array_1[i]);
     }
   }
 }
 
-matrix<float16_t, 2, 3> tint_symbol_8(uint4 buffer[32], uint offset) {
+matrix<float16_t, 2, 3> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   return matrix<float16_t, 2, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]));
 }
 
-S tint_symbol_6(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_10 = {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4]), tint_symbol_8(buffer, (offset + 8u)), asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])};
-  return tint_symbol_10;
+  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_5_ret[4];
-tint_symbol_5_ret tint_symbol_5(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_6(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -65,15 +65,12 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_5(u, 0u));
-  tint_symbol_1(s, 128u, tint_symbol_6(u, 256u));
-  tint_symbol_3(s, 392u, tint_symbol_8(u, 264u));
+  s_store(0u, u_load(0u));
+  s_store_1(128u, u_load_1(256u));
+  s_store_3(392u, u_load_3(264u));
   uint2 ubo_load_4 = u[1].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   s.Store<vector<float16_t, 3> >(136u, vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]).zxy);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001EAD8916A10(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
index 20fbb45..6b0c0ca 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -15,33 +15,33 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 2, 3> tint_symbol_5(uint4 buffer[32], uint offset) {
+matrix<float16_t, 2, 3> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   return matrix<float16_t, 2, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]));
 }
 
-S tint_symbol_3(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_8 = {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4]), tint_symbol_5(buffer, (offset + 8u)), asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])};
-  return tint_symbol_8;
+  const S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  return tint_symbol_3;
 }
 
-typedef S tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_3(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -51,14 +51,14 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_7 = (S)0;
-      w[i] = tint_symbol_7;
+      const S tint_symbol_2 = (S)0;
+      w[i] = tint_symbol_2;
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
-  w[1] = tint_symbol_3(u, 256u);
-  w[3].m = tint_symbol_5(u, 264u);
+  w = u_load(0u);
+  w[1] = u_load_1(256u);
+  w[3].m = u_load_3(264u);
   uint2 ubo_load_4 = u[1].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -70,6 +70,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001CE6EDD85C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index b92b308..8315e41 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -17,47 +17,47 @@
   return counter;
 }
 
-matrix<float16_t, 2, 4> tint_symbol_8(uint4 buffer[64], uint offset) {
+matrix<float16_t, 2, 4> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   return matrix<float16_t, 2, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]));
 }
 
-Inner tint_symbol_7(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_11 = {tint_symbol_8(buffer, (offset + 0u))};
-  return tint_symbol_11;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  return tint_symbol_4;
 }
 
-typedef Inner tint_symbol_6_ret[4];
-tint_symbol_6_ret tint_symbol_6(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_7(buffer, (offset + (i_1 * 64u)));
+      arr[i_1] = a_load_3((offset + (i_1 * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_5(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_12 = {tint_symbol_6(buffer, (offset + 0u))};
-  return tint_symbol_12;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  return tint_symbol_5;
 }
 
-typedef Outer tint_symbol_4_ret[4];
-tint_symbol_4_ret tint_symbol_4(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_2 = 0u; (i_2 < 4u); i_2 = (i_2 + 1u)) {
-      arr_1[i_2] = tint_symbol_5(buffer, (offset + (i_2 * 256u)));
+      arr_1[i_2] = a_load_1((offset + (i_2 * 256u)));
     }
   }
   return arr_1;
@@ -68,11 +68,11 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = tint_symbol_4(a, 0u);
-  const Outer l_a_i = tint_symbol_5(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = tint_symbol_6(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = tint_symbol_7(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
-  const matrix<float16_t, 2, 4> l_a_i_a_i_m = tint_symbol_8(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const matrix<float16_t, 2, 4> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_2 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
@@ -88,6 +88,3 @@
   const float16_t l_a_i_a_i_m_i_i = float16_t(f16tof32(((a[scalar_offset_index / 4][scalar_offset_index % 4] >> (scalar_offset_bytes % 4 == 0 ? 0 : 16)) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001DE39EE1520(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 39aab69..c7ce0cd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -11,47 +11,47 @@
   uint4 a[64];
 };
 
-matrix<float16_t, 2, 4> tint_symbol_4(uint4 buffer[64], uint offset) {
+matrix<float16_t, 2, 4> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   return matrix<float16_t, 2, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]));
 }
 
-Inner tint_symbol_3(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_7 = {tint_symbol_4(buffer, (offset + 0u))};
-  return tint_symbol_7;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  return tint_symbol;
 }
 
-typedef Inner tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_3(buffer, (offset + (i * 64u)));
+      arr[i] = a_load_3((offset + (i * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_1(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_8 = {tint_symbol_2(buffer, (offset + 0u))};
-  return tint_symbol_8;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  return tint_symbol_1;
 }
 
-typedef Outer tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr_1[i_1] = tint_symbol_1(buffer, (offset + (i_1 * 256u)));
+      arr_1[i_1] = a_load_1((offset + (i_1 * 256u)));
     }
   }
   return arr_1;
@@ -59,11 +59,11 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = tint_symbol(a, 0u);
-  const Outer l_a_3 = tint_symbol_1(a, 768u);
-  const Inner l_a_3_a[4] = tint_symbol_2(a, 768u);
-  const Inner l_a_3_a_2 = tint_symbol_3(a, 896u);
-  const matrix<float16_t, 2, 4> l_a_3_a_2_m = tint_symbol_4(a, 896u);
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_3 = a_load_1(768u);
+  const Inner l_a_3_a[4] = a_load_2(768u);
+  const Inner l_a_3_a_2 = a_load_3(896u);
+  const matrix<float16_t, 2, 4> l_a_3_a_2_m = a_load_4(896u);
   uint2 ubo_load_4 = a[56].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -71,6 +71,3 @@
   const float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(((a[56].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001CF0BABD660(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_builtin.wgsl.expected.fxc.hlsl
index 523b5b4..cebd31a5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,14 +4,14 @@
   uint4 u[32];
 };
 
-matrix<float16_t, 2, 4> tint_symbol(uint4 buffer[32], uint offset) {
+matrix<float16_t, 2, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
@@ -20,7 +20,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 2> t = transpose(tint_symbol(u, 264u));
+  const matrix<float16_t, 4, 2> t = transpose(u_load(264u));
   uint2 ubo_load_4 = u[1].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -31,6 +31,3 @@
   const float16_t a = abs(vector<float16_t, 4>(ubo_load_5_xz[0], ubo_load_5_yw[0], ubo_load_5_xz[1], ubo_load_5_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002535B2A2420(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.fxc.hlsl
index 226da64..019960e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -25,33 +25,33 @@
 void e(float16_t f_1) {
 }
 
-matrix<float16_t, 2, 4> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 2, 4> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   return matrix<float16_t, 2, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4]), tint_symbol_3(buffer, (offset + 8u)), asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -59,9 +59,9 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
-  b(tint_symbol_1(u, 256u));
-  c(tint_symbol_3(u, 264u));
+  a(u_load(0u));
+  b(u_load_1(256u));
+  c(u_load_3(264u));
   uint2 ubo_load_4 = u[1].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -72,6 +72,3 @@
   e(vector<float16_t, 4>(ubo_load_5_xz[0], ubo_load_5_yw[0], ubo_load_5_xz[1], ubo_load_5_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001B118E73590(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.fxc.hlsl
index 2e389d7..59768c1 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.fxc.hlsl
@@ -11,33 +11,33 @@
 };
 static S p[4] = (S[4])0;
 
-matrix<float16_t, 2, 4> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 2, 4> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   return matrix<float16_t, 2, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4]), tint_symbol_3(buffer, (offset + 8u)), asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -45,15 +45,12 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
-  p[1] = tint_symbol_1(u, 256u);
-  p[3].m = tint_symbol_3(u, 264u);
+  p = u_load(0u);
+  p[1] = u_load_1(256u);
+  p[3].m = u_load_3(264u);
   uint2 ubo_load_4 = u[1].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   p[1].m[0] = vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]).ywxz;
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000012E5540B3A0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.fxc.hlsl
index 371bd43..1c490e0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -11,53 +11,53 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol_3(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+void s_store_3(uint offset, matrix<float16_t, 2, 4> value) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
 }
 
-void tint_symbol_1(RWByteAddressBuffer buffer, uint offset, S value) {
-  buffer.Store((offset + 0u), asuint(value.before));
-  tint_symbol_3(buffer, (offset + 8u), value.m);
-  buffer.Store((offset + 64u), asuint(value.after));
+void s_store_1(uint offset, S value) {
+  s.Store((offset + 0u), asuint(value.before));
+  s_store_3((offset + 8u), value.m);
+  s.Store((offset + 64u), asuint(value.after));
 }
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, S value[4]) {
-  S array[4] = value;
+void s_store(uint offset, S value[4]) {
+  S array_1[4] = value;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      tint_symbol_1(buffer, (offset + (i * 128u)), array[i]);
+      s_store_1((offset + (i * 128u)), array_1[i]);
     }
   }
 }
 
-matrix<float16_t, 2, 4> tint_symbol_8(uint4 buffer[32], uint offset) {
+matrix<float16_t, 2, 4> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   return matrix<float16_t, 2, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]));
 }
 
-S tint_symbol_6(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_10 = {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4]), tint_symbol_8(buffer, (offset + 8u)), asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])};
-  return tint_symbol_10;
+  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_5_ret[4];
-tint_symbol_5_ret tint_symbol_5(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_6(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -65,15 +65,12 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_5(u, 0u));
-  tint_symbol_1(s, 128u, tint_symbol_6(u, 256u));
-  tint_symbol_3(s, 392u, tint_symbol_8(u, 264u));
+  s_store(0u, u_load(0u));
+  s_store_1(128u, u_load_1(256u));
+  s_store_3(392u, u_load_3(264u));
   uint2 ubo_load_4 = u[1].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   s.Store<vector<float16_t, 4> >(136u, vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]).ywxz);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000270F5E70100(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
index d2b1283..ff8e9d2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -15,33 +15,33 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 2, 4> tint_symbol_5(uint4 buffer[32], uint offset) {
+matrix<float16_t, 2, 4> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   return matrix<float16_t, 2, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]));
 }
 
-S tint_symbol_3(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_8 = {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4]), tint_symbol_5(buffer, (offset + 8u)), asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])};
-  return tint_symbol_8;
+  const S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  return tint_symbol_3;
 }
 
-typedef S tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_3(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -51,14 +51,14 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_7 = (S)0;
-      w[i] = tint_symbol_7;
+      const S tint_symbol_2 = (S)0;
+      w[i] = tint_symbol_2;
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
-  w[1] = tint_symbol_3(u, 256u);
-  w[3].m = tint_symbol_5(u, 264u);
+  w = u_load(0u);
+  w[1] = u_load_1(256u);
+  w[3].m = u_load_3(264u);
   uint2 ubo_load_4 = u[1].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -70,6 +70,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001B747E825C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index f9dc319..fbd9ce1 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -17,43 +17,43 @@
   return counter;
 }
 
-matrix<float16_t, 3, 2> tint_symbol_8(uint4 buffer[64], uint offset) {
+matrix<float16_t, 3, 2> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = a[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = a[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = a[scalar_offset_2 / 4][scalar_offset_2 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
 }
 
-Inner tint_symbol_7(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_11 = {tint_symbol_8(buffer, (offset + 0u))};
-  return tint_symbol_11;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  return tint_symbol_4;
 }
 
-typedef Inner tint_symbol_6_ret[4];
-tint_symbol_6_ret tint_symbol_6(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_7(buffer, (offset + (i_1 * 64u)));
+      arr[i_1] = a_load_3((offset + (i_1 * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_5(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_12 = {tint_symbol_6(buffer, (offset + 0u))};
-  return tint_symbol_12;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  return tint_symbol_5;
 }
 
-typedef Outer tint_symbol_4_ret[4];
-tint_symbol_4_ret tint_symbol_4(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_2 = 0u; (i_2 < 4u); i_2 = (i_2 + 1u)) {
-      arr_1[i_2] = tint_symbol_5(buffer, (offset + (i_2 * 256u)));
+      arr_1[i_2] = a_load_1((offset + (i_2 * 256u)));
     }
   }
   return arr_1;
@@ -64,11 +64,11 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = tint_symbol_4(a, 0u);
-  const Outer l_a_i = tint_symbol_5(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = tint_symbol_6(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = tint_symbol_7(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
-  const matrix<float16_t, 3, 2> l_a_i_a_i_m = tint_symbol_8(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const matrix<float16_t, 3, 2> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_3 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (4u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint ubo_load_3 = a[scalar_offset_3 / 4][scalar_offset_3 % 4];
   const vector<float16_t, 2> l_a_i_a_i_m_i = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16)));
@@ -81,6 +81,3 @@
   const float16_t l_a_i_a_i_m_i_i = float16_t(f16tof32(((a[scalar_offset_index / 4][scalar_offset_index % 4] >> (scalar_offset_bytes % 4 == 0 ? 0 : 16)) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002078397D2F0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index c63a31e..3b5a82f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -11,43 +11,43 @@
   uint4 a[64];
 };
 
-matrix<float16_t, 3, 2> tint_symbol_4(uint4 buffer[64], uint offset) {
+matrix<float16_t, 3, 2> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = a[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = a[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = a[scalar_offset_2 / 4][scalar_offset_2 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
 }
 
-Inner tint_symbol_3(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_7 = {tint_symbol_4(buffer, (offset + 0u))};
-  return tint_symbol_7;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  return tint_symbol;
 }
 
-typedef Inner tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_3(buffer, (offset + (i * 64u)));
+      arr[i] = a_load_3((offset + (i * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_1(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_8 = {tint_symbol_2(buffer, (offset + 0u))};
-  return tint_symbol_8;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  return tint_symbol_1;
 }
 
-typedef Outer tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr_1[i_1] = tint_symbol_1(buffer, (offset + (i_1 * 256u)));
+      arr_1[i_1] = a_load_1((offset + (i_1 * 256u)));
     }
   }
   return arr_1;
@@ -55,16 +55,13 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = tint_symbol(a, 0u);
-  const Outer l_a_3 = tint_symbol_1(a, 768u);
-  const Inner l_a_3_a[4] = tint_symbol_2(a, 768u);
-  const Inner l_a_3_a_2 = tint_symbol_3(a, 896u);
-  const matrix<float16_t, 3, 2> l_a_3_a_2_m = tint_symbol_4(a, 896u);
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_3 = a_load_1(768u);
+  const Inner l_a_3_a[4] = a_load_2(768u);
+  const Inner l_a_3_a_2 = a_load_3(896u);
+  const matrix<float16_t, 3, 2> l_a_3_a_2_m = a_load_4(896u);
   uint ubo_load_3 = a[56].y;
   const vector<float16_t, 2> l_a_3_a_2_m_1 = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16)));
   const float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(((a[56].y) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000229471C1EC0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_builtin.wgsl.expected.fxc.hlsl
index a1c36ac..46c2fb5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,25 +4,22 @@
   uint4 u[32];
 };
 
-matrix<float16_t, 3, 2> tint_symbol(uint4 buffer[32], uint offset) {
+matrix<float16_t, 3, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 2, 3> t = transpose(tint_symbol(u, 260u));
+  const matrix<float16_t, 2, 3> t = transpose(u_load(260u));
   uint ubo_load_3 = u[0].z;
   const float16_t l = length(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))).yx);
   uint ubo_load_4 = u[0].z;
   const float16_t a = abs(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))).yx.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001CB6BBFDD80(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.fxc.hlsl
index f295aea..6406303 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -25,29 +25,29 @@
 void e(float16_t f_1) {
 }
 
-matrix<float16_t, 3, 2> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 3, 2> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4]), tint_symbol_3(buffer, (offset + 4u)), asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -55,15 +55,12 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
-  b(tint_symbol_1(u, 256u));
-  c(tint_symbol_3(u, 260u));
+  a(u_load(0u));
+  b(u_load_1(256u));
+  c(u_load_3(260u));
   uint ubo_load_3 = u[0].z;
   d(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))).yx);
   uint ubo_load_4 = u[0].z;
   e(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))).yx.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000017A6DD8FA30(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.fxc.hlsl
index 5ad13cb..3b4fb00 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.fxc.hlsl
@@ -11,29 +11,29 @@
 };
 static S p[4] = (S[4])0;
 
-matrix<float16_t, 3, 2> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 3, 2> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4]), tint_symbol_3(buffer, (offset + 4u)), asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -41,13 +41,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
-  p[1] = tint_symbol_1(u, 256u);
-  p[3].m = tint_symbol_3(u, 260u);
+  p = u_load(0u);
+  p[1] = u_load_1(256u);
+  p[3].m = u_load_3(260u);
   uint ubo_load_3 = u[0].z;
   p[1].m[0] = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))).yx;
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000022E1691F8F0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.fxc.hlsl
index 2de9430..f1d34ef 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -11,50 +11,50 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol_3(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 3, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
+void s_store_3(uint offset, matrix<float16_t, 3, 2> value) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
 }
 
-void tint_symbol_1(RWByteAddressBuffer buffer, uint offset, S value) {
-  buffer.Store((offset + 0u), asuint(value.before));
-  tint_symbol_3(buffer, (offset + 4u), value.m);
-  buffer.Store((offset + 64u), asuint(value.after));
+void s_store_1(uint offset, S value) {
+  s.Store((offset + 0u), asuint(value.before));
+  s_store_3((offset + 4u), value.m);
+  s.Store((offset + 64u), asuint(value.after));
 }
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, S value[4]) {
-  S array[4] = value;
+void s_store(uint offset, S value[4]) {
+  S array_1[4] = value;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      tint_symbol_1(buffer, (offset + (i * 128u)), array[i]);
+      s_store_1((offset + (i * 128u)), array_1[i]);
     }
   }
 }
 
-matrix<float16_t, 3, 2> tint_symbol_8(uint4 buffer[32], uint offset) {
+matrix<float16_t, 3, 2> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
 }
 
-S tint_symbol_6(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_10 = {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4]), tint_symbol_8(buffer, (offset + 4u)), asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4])};
-  return tint_symbol_10;
+  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_5_ret[4];
-tint_symbol_5_ret tint_symbol_5(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_6(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -62,13 +62,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_5(u, 0u));
-  tint_symbol_1(s, 128u, tint_symbol_6(u, 256u));
-  tint_symbol_3(s, 388u, tint_symbol_8(u, 260u));
+  s_store(0u, u_load(0u));
+  s_store_1(128u, u_load_1(256u));
+  s_store_3(388u, u_load_3(260u));
   uint ubo_load_3 = u[0].z;
   s.Store<vector<float16_t, 2> >(132u, vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))).yx);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001BBE330BB00(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
index 2378569..dee1651 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -15,29 +15,29 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 3, 2> tint_symbol_5(uint4 buffer[32], uint offset) {
+matrix<float16_t, 3, 2> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
 }
 
-S tint_symbol_3(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_8 = {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4]), tint_symbol_5(buffer, (offset + 4u)), asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4])};
-  return tint_symbol_8;
+  const S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  return tint_symbol_3;
 }
 
-typedef S tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_3(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -47,14 +47,14 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_7 = (S)0;
-      w[i] = tint_symbol_7;
+      const S tint_symbol_2 = (S)0;
+      w[i] = tint_symbol_2;
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
-  w[1] = tint_symbol_3(u, 256u);
-  w[3].m = tint_symbol_5(u, 260u);
+  w = u_load(0u);
+  w[1] = u_load_1(256u);
+  w[3].m = u_load_3(260u);
   uint ubo_load_3 = u[0].z;
   w[1].m[0] = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))).yx;
 }
@@ -64,6 +64,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000194753403B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 6a4d6e3..faabffa 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -17,52 +17,52 @@
   return counter;
 }
 
-matrix<float16_t, 3, 3> tint_symbol_8(uint4 buffer[64], uint offset) {
+matrix<float16_t, 3, 3> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   return matrix<float16_t, 3, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]));
 }
 
-Inner tint_symbol_7(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_11 = {tint_symbol_8(buffer, (offset + 0u))};
-  return tint_symbol_11;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  return tint_symbol_4;
 }
 
-typedef Inner tint_symbol_6_ret[4];
-tint_symbol_6_ret tint_symbol_6(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_7(buffer, (offset + (i_1 * 64u)));
+      arr[i_1] = a_load_3((offset + (i_1 * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_5(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_12 = {tint_symbol_6(buffer, (offset + 0u))};
-  return tint_symbol_12;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  return tint_symbol_5;
 }
 
-typedef Outer tint_symbol_4_ret[4];
-tint_symbol_4_ret tint_symbol_4(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_2 = 0u; (i_2 < 4u); i_2 = (i_2 + 1u)) {
-      arr_1[i_2] = tint_symbol_5(buffer, (offset + (i_2 * 256u)));
+      arr_1[i_2] = a_load_1((offset + (i_2 * 256u)));
     }
   }
   return arr_1;
@@ -73,11 +73,11 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = tint_symbol_4(a, 0u);
-  const Outer l_a_i = tint_symbol_5(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = tint_symbol_6(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = tint_symbol_7(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
-  const matrix<float16_t, 3, 3> l_a_i_a_i_m = tint_symbol_8(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const matrix<float16_t, 3, 3> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_3 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_7 = a[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
@@ -93,6 +93,3 @@
   const float16_t l_a_i_a_i_m_i_i = float16_t(f16tof32(((a[scalar_offset_index / 4][scalar_offset_index % 4] >> (scalar_offset_bytes % 4 == 0 ? 0 : 16)) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001CC9AE84850(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 6e52af4..3c9b593 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -11,52 +11,52 @@
   uint4 a[64];
 };
 
-matrix<float16_t, 3, 3> tint_symbol_4(uint4 buffer[64], uint offset) {
+matrix<float16_t, 3, 3> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   return matrix<float16_t, 3, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]));
 }
 
-Inner tint_symbol_3(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_7 = {tint_symbol_4(buffer, (offset + 0u))};
-  return tint_symbol_7;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  return tint_symbol;
 }
 
-typedef Inner tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_3(buffer, (offset + (i * 64u)));
+      arr[i] = a_load_3((offset + (i * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_1(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_8 = {tint_symbol_2(buffer, (offset + 0u))};
-  return tint_symbol_8;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  return tint_symbol_1;
 }
 
-typedef Outer tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr_1[i_1] = tint_symbol_1(buffer, (offset + (i_1 * 256u)));
+      arr_1[i_1] = a_load_1((offset + (i_1 * 256u)));
     }
   }
   return arr_1;
@@ -64,11 +64,11 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = tint_symbol(a, 0u);
-  const Outer l_a_3 = tint_symbol_1(a, 768u);
-  const Inner l_a_3_a[4] = tint_symbol_2(a, 768u);
-  const Inner l_a_3_a_2 = tint_symbol_3(a, 896u);
-  const matrix<float16_t, 3, 3> l_a_3_a_2_m = tint_symbol_4(a, 896u);
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_3 = a_load_1(768u);
+  const Inner l_a_3_a[4] = a_load_2(768u);
+  const Inner l_a_3_a_2 = a_load_3(896u);
+  const matrix<float16_t, 3, 3> l_a_3_a_2_m = a_load_4(896u);
   uint2 ubo_load_6 = a[56].zw;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -76,6 +76,3 @@
   const float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(((a[56].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000021CC01A0970(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_builtin.wgsl.expected.fxc.hlsl
index bb722e2..d1bb1c9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,19 +4,19 @@
   uint4 u[32];
 };
 
-matrix<float16_t, 3, 3> tint_symbol(uint4 buffer[32], uint offset) {
+matrix<float16_t, 3, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -25,7 +25,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 3, 3> t = transpose(tint_symbol(u, 264u));
+  const matrix<float16_t, 3, 3> t = transpose(u_load(264u));
   uint2 ubo_load_6 = u[1].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -36,6 +36,3 @@
   const float16_t a = abs(vector<float16_t, 3>(ubo_load_7_xz[0], ubo_load_7_y, ubo_load_7_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001BFA9E0F690(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.fxc.hlsl
index f1deae3..d18b059 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -25,38 +25,38 @@
 void e(float16_t f_1) {
 }
 
-matrix<float16_t, 3, 3> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 3, 3> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   return matrix<float16_t, 3, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4]), tint_symbol_3(buffer, (offset + 8u)), asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -64,9 +64,9 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
-  b(tint_symbol_1(u, 256u));
-  c(tint_symbol_3(u, 264u));
+  a(u_load(0u));
+  b(u_load_1(256u));
+  c(u_load_3(264u));
   uint2 ubo_load_6 = u[1].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -77,6 +77,3 @@
   e(vector<float16_t, 3>(ubo_load_7_xz[0], ubo_load_7_y, ubo_load_7_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001A1CC720100(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.fxc.hlsl
index 7c9105a..736835b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.fxc.hlsl
@@ -11,38 +11,38 @@
 };
 static S p[4] = (S[4])0;
 
-matrix<float16_t, 3, 3> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 3, 3> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   return matrix<float16_t, 3, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4]), tint_symbol_3(buffer, (offset + 8u)), asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -50,15 +50,12 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
-  p[1] = tint_symbol_1(u, 256u);
-  p[3].m = tint_symbol_3(u, 264u);
+  p = u_load(0u);
+  p[1] = u_load_1(256u);
+  p[3].m = u_load_3(264u);
   uint2 ubo_load_6 = u[1].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
   p[1].m[0] = vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]).zxy;
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000025A3E276990(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.fxc.hlsl
index c89fc84..df63c12 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -11,59 +11,59 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol_3(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 3, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
+void s_store_3(uint offset, matrix<float16_t, 3, 3> value) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
 }
 
-void tint_symbol_1(RWByteAddressBuffer buffer, uint offset, S value) {
-  buffer.Store((offset + 0u), asuint(value.before));
-  tint_symbol_3(buffer, (offset + 8u), value.m);
-  buffer.Store((offset + 64u), asuint(value.after));
+void s_store_1(uint offset, S value) {
+  s.Store((offset + 0u), asuint(value.before));
+  s_store_3((offset + 8u), value.m);
+  s.Store((offset + 64u), asuint(value.after));
 }
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, S value[4]) {
-  S array[4] = value;
+void s_store(uint offset, S value[4]) {
+  S array_1[4] = value;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      tint_symbol_1(buffer, (offset + (i * 128u)), array[i]);
+      s_store_1((offset + (i * 128u)), array_1[i]);
     }
   }
 }
 
-matrix<float16_t, 3, 3> tint_symbol_8(uint4 buffer[32], uint offset) {
+matrix<float16_t, 3, 3> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   return matrix<float16_t, 3, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]));
 }
 
-S tint_symbol_6(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_10 = {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4]), tint_symbol_8(buffer, (offset + 8u)), asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4])};
-  return tint_symbol_10;
+  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_5_ret[4];
-tint_symbol_5_ret tint_symbol_5(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_6(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -71,15 +71,12 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_5(u, 0u));
-  tint_symbol_1(s, 128u, tint_symbol_6(u, 256u));
-  tint_symbol_3(s, 392u, tint_symbol_8(u, 264u));
+  s_store(0u, u_load(0u));
+  s_store_1(128u, u_load_1(256u));
+  s_store_3(392u, u_load_3(264u));
   uint2 ubo_load_6 = u[1].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
   s.Store<vector<float16_t, 3> >(136u, vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]).zxy);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001D5F9C4A510(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
index b205f67..b899735 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -15,38 +15,38 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 3, 3> tint_symbol_5(uint4 buffer[32], uint offset) {
+matrix<float16_t, 3, 3> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   return matrix<float16_t, 3, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]));
 }
 
-S tint_symbol_3(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_8 = {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4]), tint_symbol_5(buffer, (offset + 8u)), asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4])};
-  return tint_symbol_8;
+  const S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  return tint_symbol_3;
 }
 
-typedef S tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_3(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -56,14 +56,14 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_7 = (S)0;
-      w[i] = tint_symbol_7;
+      const S tint_symbol_2 = (S)0;
+      w[i] = tint_symbol_2;
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
-  w[1] = tint_symbol_3(u, 256u);
-  w[3].m = tint_symbol_5(u, 264u);
+  w = u_load(0u);
+  w[1] = u_load_1(256u);
+  w[3].m = u_load_3(264u);
   uint2 ubo_load_6 = u[1].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -75,6 +75,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000021282D17B60(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index cf6d6ac..6374946 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -17,52 +17,52 @@
   return counter;
 }
 
-matrix<float16_t, 3, 4> tint_symbol_8(uint4 buffer[64], uint offset) {
+matrix<float16_t, 3, 4> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   return matrix<float16_t, 3, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]));
 }
 
-Inner tint_symbol_7(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_11 = {tint_symbol_8(buffer, (offset + 0u))};
-  return tint_symbol_11;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  return tint_symbol_4;
 }
 
-typedef Inner tint_symbol_6_ret[4];
-tint_symbol_6_ret tint_symbol_6(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_7(buffer, (offset + (i_1 * 64u)));
+      arr[i_1] = a_load_3((offset + (i_1 * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_5(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_12 = {tint_symbol_6(buffer, (offset + 0u))};
-  return tint_symbol_12;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  return tint_symbol_5;
 }
 
-typedef Outer tint_symbol_4_ret[4];
-tint_symbol_4_ret tint_symbol_4(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_2 = 0u; (i_2 < 4u); i_2 = (i_2 + 1u)) {
-      arr_1[i_2] = tint_symbol_5(buffer, (offset + (i_2 * 256u)));
+      arr_1[i_2] = a_load_1((offset + (i_2 * 256u)));
     }
   }
   return arr_1;
@@ -73,11 +73,11 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = tint_symbol_4(a, 0u);
-  const Outer l_a_i = tint_symbol_5(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = tint_symbol_6(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = tint_symbol_7(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
-  const matrix<float16_t, 3, 4> l_a_i_a_i_m = tint_symbol_8(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const matrix<float16_t, 3, 4> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_3 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_7 = a[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
@@ -93,6 +93,3 @@
   const float16_t l_a_i_a_i_m_i_i = float16_t(f16tof32(((a[scalar_offset_index / 4][scalar_offset_index % 4] >> (scalar_offset_bytes % 4 == 0 ? 0 : 16)) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001C15A92C5C0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 681fb5e..4dbbca7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -11,52 +11,52 @@
   uint4 a[64];
 };
 
-matrix<float16_t, 3, 4> tint_symbol_4(uint4 buffer[64], uint offset) {
+matrix<float16_t, 3, 4> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   return matrix<float16_t, 3, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]));
 }
 
-Inner tint_symbol_3(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_7 = {tint_symbol_4(buffer, (offset + 0u))};
-  return tint_symbol_7;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  return tint_symbol;
 }
 
-typedef Inner tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_3(buffer, (offset + (i * 64u)));
+      arr[i] = a_load_3((offset + (i * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_1(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_8 = {tint_symbol_2(buffer, (offset + 0u))};
-  return tint_symbol_8;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  return tint_symbol_1;
 }
 
-typedef Outer tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr_1[i_1] = tint_symbol_1(buffer, (offset + (i_1 * 256u)));
+      arr_1[i_1] = a_load_1((offset + (i_1 * 256u)));
     }
   }
   return arr_1;
@@ -64,11 +64,11 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = tint_symbol(a, 0u);
-  const Outer l_a_3 = tint_symbol_1(a, 768u);
-  const Inner l_a_3_a[4] = tint_symbol_2(a, 768u);
-  const Inner l_a_3_a_2 = tint_symbol_3(a, 896u);
-  const matrix<float16_t, 3, 4> l_a_3_a_2_m = tint_symbol_4(a, 896u);
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_3 = a_load_1(768u);
+  const Inner l_a_3_a[4] = a_load_2(768u);
+  const Inner l_a_3_a_2 = a_load_3(896u);
+  const matrix<float16_t, 3, 4> l_a_3_a_2_m = a_load_4(896u);
   uint2 ubo_load_6 = a[56].zw;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -76,6 +76,3 @@
   const float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(((a[56].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002CC6184FF70(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_builtin.wgsl.expected.fxc.hlsl
index 2568b7a..e829d15 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,19 +4,19 @@
   uint4 u[32];
 };
 
-matrix<float16_t, 3, 4> tint_symbol(uint4 buffer[32], uint offset) {
+matrix<float16_t, 3, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -25,7 +25,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 3> t = transpose(tint_symbol(u, 264u));
+  const matrix<float16_t, 4, 3> t = transpose(u_load(264u));
   uint2 ubo_load_6 = u[1].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -36,6 +36,3 @@
   const float16_t a = abs(vector<float16_t, 4>(ubo_load_7_xz[0], ubo_load_7_yw[0], ubo_load_7_xz[1], ubo_load_7_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002683960F9A0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.fxc.hlsl
index 21d911e..2723eeb 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -25,38 +25,38 @@
 void e(float16_t f_1) {
 }
 
-matrix<float16_t, 3, 4> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 3, 4> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   return matrix<float16_t, 3, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4]), tint_symbol_3(buffer, (offset + 8u)), asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -64,9 +64,9 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
-  b(tint_symbol_1(u, 256u));
-  c(tint_symbol_3(u, 264u));
+  a(u_load(0u));
+  b(u_load_1(256u));
+  c(u_load_3(264u));
   uint2 ubo_load_6 = u[1].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -77,6 +77,3 @@
   e(vector<float16_t, 4>(ubo_load_7_xz[0], ubo_load_7_yw[0], ubo_load_7_xz[1], ubo_load_7_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000278FC792580(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.fxc.hlsl
index 5da97a8..2b8aaf9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.fxc.hlsl
@@ -11,38 +11,38 @@
 };
 static S p[4] = (S[4])0;
 
-matrix<float16_t, 3, 4> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 3, 4> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   return matrix<float16_t, 3, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4]), tint_symbol_3(buffer, (offset + 8u)), asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -50,15 +50,12 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
-  p[1] = tint_symbol_1(u, 256u);
-  p[3].m = tint_symbol_3(u, 264u);
+  p = u_load(0u);
+  p[1] = u_load_1(256u);
+  p[3].m = u_load_3(264u);
   uint2 ubo_load_6 = u[1].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
   p[1].m[0] = vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]).ywxz;
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002605021E560(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.fxc.hlsl
index 49f88f1..282f672 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -11,59 +11,59 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol_3(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 3, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
+void s_store_3(uint offset, matrix<float16_t, 3, 4> value) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
 }
 
-void tint_symbol_1(RWByteAddressBuffer buffer, uint offset, S value) {
-  buffer.Store((offset + 0u), asuint(value.before));
-  tint_symbol_3(buffer, (offset + 8u), value.m);
-  buffer.Store((offset + 64u), asuint(value.after));
+void s_store_1(uint offset, S value) {
+  s.Store((offset + 0u), asuint(value.before));
+  s_store_3((offset + 8u), value.m);
+  s.Store((offset + 64u), asuint(value.after));
 }
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, S value[4]) {
-  S array[4] = value;
+void s_store(uint offset, S value[4]) {
+  S array_1[4] = value;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      tint_symbol_1(buffer, (offset + (i * 128u)), array[i]);
+      s_store_1((offset + (i * 128u)), array_1[i]);
     }
   }
 }
 
-matrix<float16_t, 3, 4> tint_symbol_8(uint4 buffer[32], uint offset) {
+matrix<float16_t, 3, 4> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   return matrix<float16_t, 3, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]));
 }
 
-S tint_symbol_6(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_10 = {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4]), tint_symbol_8(buffer, (offset + 8u)), asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4])};
-  return tint_symbol_10;
+  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_5_ret[4];
-tint_symbol_5_ret tint_symbol_5(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_6(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -71,15 +71,12 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_5(u, 0u));
-  tint_symbol_1(s, 128u, tint_symbol_6(u, 256u));
-  tint_symbol_3(s, 392u, tint_symbol_8(u, 264u));
+  s_store(0u, u_load(0u));
+  s_store_1(128u, u_load_1(256u));
+  s_store_3(392u, u_load_3(264u));
   uint2 ubo_load_6 = u[1].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
   s.Store<vector<float16_t, 4> >(136u, vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]).ywxz);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001FE54B10170(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
index fc24a1c..d28e438 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -15,38 +15,38 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 3, 4> tint_symbol_5(uint4 buffer[32], uint offset) {
+matrix<float16_t, 3, 4> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   return matrix<float16_t, 3, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]));
 }
 
-S tint_symbol_3(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_8 = {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4]), tint_symbol_5(buffer, (offset + 8u)), asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4])};
-  return tint_symbol_8;
+  const S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  return tint_symbol_3;
 }
 
-typedef S tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_3(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -56,14 +56,14 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_7 = (S)0;
-      w[i] = tint_symbol_7;
+      const S tint_symbol_2 = (S)0;
+      w[i] = tint_symbol_2;
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
-  w[1] = tint_symbol_3(u, 256u);
-  w[3].m = tint_symbol_5(u, 264u);
+  w = u_load(0u);
+  w[1] = u_load_1(256u);
+  w[3].m = u_load_3(264u);
   uint2 ubo_load_6 = u[1].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -75,6 +75,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001FEBFD6AE90(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index c6eb34d..8f5605c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -17,45 +17,45 @@
   return counter;
 }
 
-matrix<float16_t, 4, 2> tint_symbol_8(uint4 buffer[64], uint offset) {
+matrix<float16_t, 4, 2> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = a[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = a[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = a[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = a[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
-Inner tint_symbol_7(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_11 = {tint_symbol_8(buffer, (offset + 0u))};
-  return tint_symbol_11;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  return tint_symbol_4;
 }
 
-typedef Inner tint_symbol_6_ret[4];
-tint_symbol_6_ret tint_symbol_6(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_7(buffer, (offset + (i_1 * 64u)));
+      arr[i_1] = a_load_3((offset + (i_1 * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_5(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_12 = {tint_symbol_6(buffer, (offset + 0u))};
-  return tint_symbol_12;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  return tint_symbol_5;
 }
 
-typedef Outer tint_symbol_4_ret[4];
-tint_symbol_4_ret tint_symbol_4(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_2 = 0u; (i_2 < 4u); i_2 = (i_2 + 1u)) {
-      arr_1[i_2] = tint_symbol_5(buffer, (offset + (i_2 * 256u)));
+      arr_1[i_2] = a_load_1((offset + (i_2 * 256u)));
     }
   }
   return arr_1;
@@ -66,11 +66,11 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = tint_symbol_4(a, 0u);
-  const Outer l_a_i = tint_symbol_5(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = tint_symbol_6(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = tint_symbol_7(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
-  const matrix<float16_t, 4, 2> l_a_i_a_i_m = tint_symbol_8(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const matrix<float16_t, 4, 2> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_4 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (4u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint ubo_load_4 = a[scalar_offset_4 / 4][scalar_offset_4 % 4];
   const vector<float16_t, 2> l_a_i_a_i_m_i = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16)));
@@ -83,6 +83,3 @@
   const float16_t l_a_i_a_i_m_i_i = float16_t(f16tof32(((a[scalar_offset_index / 4][scalar_offset_index % 4] >> (scalar_offset_bytes % 4 == 0 ? 0 : 16)) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000216C74B2530(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 5745198..8d1466e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -11,45 +11,45 @@
   uint4 a[64];
 };
 
-matrix<float16_t, 4, 2> tint_symbol_4(uint4 buffer[64], uint offset) {
+matrix<float16_t, 4, 2> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = a[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = a[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = a[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = a[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
-Inner tint_symbol_3(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_7 = {tint_symbol_4(buffer, (offset + 0u))};
-  return tint_symbol_7;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  return tint_symbol;
 }
 
-typedef Inner tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_3(buffer, (offset + (i * 64u)));
+      arr[i] = a_load_3((offset + (i * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_1(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_8 = {tint_symbol_2(buffer, (offset + 0u))};
-  return tint_symbol_8;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  return tint_symbol_1;
 }
 
-typedef Outer tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr_1[i_1] = tint_symbol_1(buffer, (offset + (i_1 * 256u)));
+      arr_1[i_1] = a_load_1((offset + (i_1 * 256u)));
     }
   }
   return arr_1;
@@ -57,16 +57,13 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = tint_symbol(a, 0u);
-  const Outer l_a_3 = tint_symbol_1(a, 768u);
-  const Inner l_a_3_a[4] = tint_symbol_2(a, 768u);
-  const Inner l_a_3_a_2 = tint_symbol_3(a, 896u);
-  const matrix<float16_t, 4, 2> l_a_3_a_2_m = tint_symbol_4(a, 896u);
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_3 = a_load_1(768u);
+  const Inner l_a_3_a[4] = a_load_2(768u);
+  const Inner l_a_3_a_2 = a_load_3(896u);
+  const matrix<float16_t, 4, 2> l_a_3_a_2_m = a_load_4(896u);
   uint ubo_load_4 = a[56].y;
   const vector<float16_t, 2> l_a_3_a_2_m_1 = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16)));
   const float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(((a[56].y) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000026E60B9E9C0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_builtin.wgsl.expected.fxc.hlsl
index 2786ec49..c3f802e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,27 +4,24 @@
   uint4 u[32];
 };
 
-matrix<float16_t, 4, 2> tint_symbol(uint4 buffer[32], uint offset) {
+matrix<float16_t, 4, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 2, 4> t = transpose(tint_symbol(u, 260u));
+  const matrix<float16_t, 2, 4> t = transpose(u_load(260u));
   uint ubo_load_4 = u[0].z;
   const float16_t l = length(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))).yx);
   uint ubo_load_5 = u[0].z;
   const float16_t a = abs(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_5 & 0xFFFF)), float16_t(f16tof32(ubo_load_5 >> 16))).yx.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001CC7C77CFC0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.fxc.hlsl
index 4db57b9..a5a4370 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -25,31 +25,31 @@
 void e(float16_t f_1) {
 }
 
-matrix<float16_t, 4, 2> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 4, 2> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4]), tint_symbol_3(buffer, (offset + 4u)), asint(buffer[scalar_offset_5 / 4][scalar_offset_5 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -57,15 +57,12 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
-  b(tint_symbol_1(u, 256u));
-  c(tint_symbol_3(u, 260u));
+  a(u_load(0u));
+  b(u_load_1(256u));
+  c(u_load_3(260u));
   uint ubo_load_4 = u[0].z;
   d(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))).yx);
   uint ubo_load_5 = u[0].z;
   e(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_5 & 0xFFFF)), float16_t(f16tof32(ubo_load_5 >> 16))).yx.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001CA88A4FDA0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.fxc.hlsl
index 12b11cc..33eaf31 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.fxc.hlsl
@@ -11,31 +11,31 @@
 };
 static S p[4] = (S[4])0;
 
-matrix<float16_t, 4, 2> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 4, 2> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4]), tint_symbol_3(buffer, (offset + 4u)), asint(buffer[scalar_offset_5 / 4][scalar_offset_5 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -43,13 +43,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
-  p[1] = tint_symbol_1(u, 256u);
-  p[3].m = tint_symbol_3(u, 260u);
+  p = u_load(0u);
+  p[1] = u_load_1(256u);
+  p[3].m = u_load_3(260u);
   uint ubo_load_4 = u[0].z;
   p[1].m[0] = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))).yx;
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002074AC3FD30(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.fxc.hlsl
index fc9ff30..c1a2415 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -11,53 +11,53 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol_3(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 12u), value[3u]);
+void s_store_3(uint offset, matrix<float16_t, 4, 2> value) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
+  s.Store<vector<float16_t, 2> >((offset + 12u), value[3u]);
 }
 
-void tint_symbol_1(RWByteAddressBuffer buffer, uint offset, S value) {
-  buffer.Store((offset + 0u), asuint(value.before));
-  tint_symbol_3(buffer, (offset + 4u), value.m);
-  buffer.Store((offset + 64u), asuint(value.after));
+void s_store_1(uint offset, S value) {
+  s.Store((offset + 0u), asuint(value.before));
+  s_store_3((offset + 4u), value.m);
+  s.Store((offset + 64u), asuint(value.after));
 }
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, S value[4]) {
-  S array[4] = value;
+void s_store(uint offset, S value[4]) {
+  S array_1[4] = value;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      tint_symbol_1(buffer, (offset + (i * 128u)), array[i]);
+      s_store_1((offset + (i * 128u)), array_1[i]);
     }
   }
 }
 
-matrix<float16_t, 4, 2> tint_symbol_8(uint4 buffer[32], uint offset) {
+matrix<float16_t, 4, 2> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
-S tint_symbol_6(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_10 = {asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4]), tint_symbol_8(buffer, (offset + 4u)), asint(buffer[scalar_offset_5 / 4][scalar_offset_5 % 4])};
-  return tint_symbol_10;
+  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_5_ret[4];
-tint_symbol_5_ret tint_symbol_5(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_6(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -65,13 +65,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_5(u, 0u));
-  tint_symbol_1(s, 128u, tint_symbol_6(u, 256u));
-  tint_symbol_3(s, 388u, tint_symbol_8(u, 260u));
+  s_store(0u, u_load(0u));
+  s_store_1(128u, u_load_1(256u));
+  s_store_3(388u, u_load_3(260u));
   uint ubo_load_4 = u[0].z;
   s.Store<vector<float16_t, 2> >(132u, vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))).yx);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000185CE589540(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
index 7f448db..476c252 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -15,31 +15,31 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 4, 2> tint_symbol_5(uint4 buffer[32], uint offset) {
+matrix<float16_t, 4, 2> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
-S tint_symbol_3(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_8 = {asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4]), tint_symbol_5(buffer, (offset + 4u)), asint(buffer[scalar_offset_5 / 4][scalar_offset_5 % 4])};
-  return tint_symbol_8;
+  const S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  return tint_symbol_3;
 }
 
-typedef S tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_3(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -49,14 +49,14 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_7 = (S)0;
-      w[i] = tint_symbol_7;
+      const S tint_symbol_2 = (S)0;
+      w[i] = tint_symbol_2;
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
-  w[1] = tint_symbol_3(u, 256u);
-  w[3].m = tint_symbol_5(u, 260u);
+  w = u_load(0u);
+  w[1] = u_load_1(256u);
+  w[3].m = u_load_3(260u);
   uint ubo_load_4 = u[0].z;
   w[1].m[0] = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))).yx;
 }
@@ -66,6 +66,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001B8BDB52100(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index ac36ddd..0c19419 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -17,57 +17,57 @@
   return counter;
 }
 
-matrix<float16_t, 4, 3> tint_symbol_8(uint4 buffer[64], uint offset) {
+matrix<float16_t, 4, 3> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = a[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
   return matrix<float16_t, 4, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]));
 }
 
-Inner tint_symbol_7(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_11 = {tint_symbol_8(buffer, (offset + 0u))};
-  return tint_symbol_11;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  return tint_symbol_4;
 }
 
-typedef Inner tint_symbol_6_ret[4];
-tint_symbol_6_ret tint_symbol_6(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_7(buffer, (offset + (i_1 * 64u)));
+      arr[i_1] = a_load_3((offset + (i_1 * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_5(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_12 = {tint_symbol_6(buffer, (offset + 0u))};
-  return tint_symbol_12;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  return tint_symbol_5;
 }
 
-typedef Outer tint_symbol_4_ret[4];
-tint_symbol_4_ret tint_symbol_4(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_2 = 0u; (i_2 < 4u); i_2 = (i_2 + 1u)) {
-      arr_1[i_2] = tint_symbol_5(buffer, (offset + (i_2 * 256u)));
+      arr_1[i_2] = a_load_1((offset + (i_2 * 256u)));
     }
   }
   return arr_1;
@@ -78,11 +78,11 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = tint_symbol_4(a, 0u);
-  const Outer l_a_i = tint_symbol_5(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = tint_symbol_6(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = tint_symbol_7(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
-  const matrix<float16_t, 4, 3> l_a_i_a_i_m = tint_symbol_8(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const matrix<float16_t, 4, 3> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_4 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_9 = a[scalar_offset_4 / 4];
   uint2 ubo_load_8 = ((scalar_offset_4 & 2) ? ubo_load_9.zw : ubo_load_9.xy);
@@ -98,6 +98,3 @@
   const float16_t l_a_i_a_i_m_i_i = float16_t(f16tof32(((a[scalar_offset_index / 4][scalar_offset_index % 4] >> (scalar_offset_bytes % 4 == 0 ? 0 : 16)) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000236CB5C19B0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 3cc9dd2..1f3ec5f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -11,57 +11,57 @@
   uint4 a[64];
 };
 
-matrix<float16_t, 4, 3> tint_symbol_4(uint4 buffer[64], uint offset) {
+matrix<float16_t, 4, 3> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = a[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
   return matrix<float16_t, 4, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]));
 }
 
-Inner tint_symbol_3(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_7 = {tint_symbol_4(buffer, (offset + 0u))};
-  return tint_symbol_7;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  return tint_symbol;
 }
 
-typedef Inner tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_3(buffer, (offset + (i * 64u)));
+      arr[i] = a_load_3((offset + (i * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_1(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_8 = {tint_symbol_2(buffer, (offset + 0u))};
-  return tint_symbol_8;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  return tint_symbol_1;
 }
 
-typedef Outer tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr_1[i_1] = tint_symbol_1(buffer, (offset + (i_1 * 256u)));
+      arr_1[i_1] = a_load_1((offset + (i_1 * 256u)));
     }
   }
   return arr_1;
@@ -69,11 +69,11 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = tint_symbol(a, 0u);
-  const Outer l_a_3 = tint_symbol_1(a, 768u);
-  const Inner l_a_3_a[4] = tint_symbol_2(a, 768u);
-  const Inner l_a_3_a_2 = tint_symbol_3(a, 896u);
-  const matrix<float16_t, 4, 3> l_a_3_a_2_m = tint_symbol_4(a, 896u);
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_3 = a_load_1(768u);
+  const Inner l_a_3_a[4] = a_load_2(768u);
+  const Inner l_a_3_a_2 = a_load_3(896u);
+  const matrix<float16_t, 4, 3> l_a_3_a_2_m = a_load_4(896u);
   uint2 ubo_load_8 = a[56].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
@@ -81,6 +81,3 @@
   const float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(((a[56].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001CF48DE1160(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_builtin.wgsl.expected.fxc.hlsl
index 1f18e46..f965507 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,24 +4,24 @@
   uint4 u[32];
 };
 
-matrix<float16_t, 4, 3> tint_symbol(uint4 buffer[32], uint offset) {
+matrix<float16_t, 4, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 3, 4> t = transpose(tint_symbol(u, 264u));
+  const matrix<float16_t, 3, 4> t = transpose(u_load(264u));
   uint2 ubo_load_8 = u[1].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
@@ -41,6 +41,3 @@
   const float16_t a = abs(vector<float16_t, 3>(ubo_load_9_xz[0], ubo_load_9_y, ubo_load_9_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000023590C3D7E0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.fxc.hlsl
index ca1bbc5..09043df 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -25,43 +25,43 @@
 void e(float16_t f_1) {
 }
 
-matrix<float16_t, 4, 3> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 4, 3> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
   return matrix<float16_t, 4, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4]), tint_symbol_3(buffer, (offset + 8u)), asint(buffer[scalar_offset_5 / 4][scalar_offset_5 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -69,9 +69,9 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
-  b(tint_symbol_1(u, 256u));
-  c(tint_symbol_3(u, 264u));
+  a(u_load(0u));
+  b(u_load_1(256u));
+  c(u_load_3(264u));
   uint2 ubo_load_8 = u[1].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
@@ -82,6 +82,3 @@
   e(vector<float16_t, 3>(ubo_load_9_xz[0], ubo_load_9_y, ubo_load_9_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001FF77F70B40(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.fxc.hlsl
index 966dd5f..a0fd5d6 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.fxc.hlsl
@@ -11,43 +11,43 @@
 };
 static S p[4] = (S[4])0;
 
-matrix<float16_t, 4, 3> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 4, 3> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
   return matrix<float16_t, 4, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4]), tint_symbol_3(buffer, (offset + 8u)), asint(buffer[scalar_offset_5 / 4][scalar_offset_5 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -55,15 +55,12 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
-  p[1] = tint_symbol_1(u, 256u);
-  p[3].m = tint_symbol_3(u, 264u);
+  p = u_load(0u);
+  p[1] = u_load_1(256u);
+  p[3].m = u_load_3(264u);
   uint2 ubo_load_8 = u[1].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
   p[1].m[0] = vector<float16_t, 3>(ubo_load_8_xz[0], ubo_load_8_y, ubo_load_8_xz[1]).zxy;
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000019CC8F77C00(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.fxc.hlsl
index c440a1c..2608760 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -11,65 +11,65 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol_3(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 24u), value[3u]);
+void s_store_3(uint offset, matrix<float16_t, 4, 3> value) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
+  s.Store<vector<float16_t, 3> >((offset + 24u), value[3u]);
 }
 
-void tint_symbol_1(RWByteAddressBuffer buffer, uint offset, S value) {
-  buffer.Store((offset + 0u), asuint(value.before));
-  tint_symbol_3(buffer, (offset + 8u), value.m);
-  buffer.Store((offset + 64u), asuint(value.after));
+void s_store_1(uint offset, S value) {
+  s.Store((offset + 0u), asuint(value.before));
+  s_store_3((offset + 8u), value.m);
+  s.Store((offset + 64u), asuint(value.after));
 }
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, S value[4]) {
-  S array[4] = value;
+void s_store(uint offset, S value[4]) {
+  S array_1[4] = value;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      tint_symbol_1(buffer, (offset + (i * 128u)), array[i]);
+      s_store_1((offset + (i * 128u)), array_1[i]);
     }
   }
 }
 
-matrix<float16_t, 4, 3> tint_symbol_8(uint4 buffer[32], uint offset) {
+matrix<float16_t, 4, 3> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
   return matrix<float16_t, 4, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]));
 }
 
-S tint_symbol_6(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_10 = {asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4]), tint_symbol_8(buffer, (offset + 8u)), asint(buffer[scalar_offset_5 / 4][scalar_offset_5 % 4])};
-  return tint_symbol_10;
+  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_5_ret[4];
-tint_symbol_5_ret tint_symbol_5(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_6(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -77,15 +77,12 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_5(u, 0u));
-  tint_symbol_1(s, 128u, tint_symbol_6(u, 256u));
-  tint_symbol_3(s, 392u, tint_symbol_8(u, 264u));
+  s_store(0u, u_load(0u));
+  s_store_1(128u, u_load_1(256u));
+  s_store_3(392u, u_load_3(264u));
   uint2 ubo_load_8 = u[1].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
   s.Store<vector<float16_t, 3> >(136u, vector<float16_t, 3>(ubo_load_8_xz[0], ubo_load_8_y, ubo_load_8_xz[1]).zxy);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000168827ABEC0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
index a9b0792..49258f4 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -15,43 +15,43 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 4, 3> tint_symbol_5(uint4 buffer[32], uint offset) {
+matrix<float16_t, 4, 3> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
   return matrix<float16_t, 4, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]));
 }
 
-S tint_symbol_3(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_8 = {asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4]), tint_symbol_5(buffer, (offset + 8u)), asint(buffer[scalar_offset_5 / 4][scalar_offset_5 % 4])};
-  return tint_symbol_8;
+  const S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  return tint_symbol_3;
 }
 
-typedef S tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_3(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -61,14 +61,14 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_7 = (S)0;
-      w[i] = tint_symbol_7;
+      const S tint_symbol_2 = (S)0;
+      w[i] = tint_symbol_2;
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
-  w[1] = tint_symbol_3(u, 256u);
-  w[3].m = tint_symbol_5(u, 264u);
+  w = u_load(0u);
+  w[1] = u_load_1(256u);
+  w[3].m = u_load_3(264u);
   uint2 ubo_load_8 = u[1].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
@@ -80,6 +80,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002136A44CFC0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 835df5d..0db7f99 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -17,57 +17,57 @@
   return counter;
 }
 
-matrix<float16_t, 4, 4> tint_symbol_8(uint4 buffer[64], uint offset) {
+matrix<float16_t, 4, 4> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = a[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
   return matrix<float16_t, 4, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]), vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]));
 }
 
-Inner tint_symbol_7(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_11 = {tint_symbol_8(buffer, (offset + 0u))};
-  return tint_symbol_11;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  return tint_symbol_4;
 }
 
-typedef Inner tint_symbol_6_ret[4];
-tint_symbol_6_ret tint_symbol_6(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_7(buffer, (offset + (i_1 * 64u)));
+      arr[i_1] = a_load_3((offset + (i_1 * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_5(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_12 = {tint_symbol_6(buffer, (offset + 0u))};
-  return tint_symbol_12;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  return tint_symbol_5;
 }
 
-typedef Outer tint_symbol_4_ret[4];
-tint_symbol_4_ret tint_symbol_4(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_2 = 0u; (i_2 < 4u); i_2 = (i_2 + 1u)) {
-      arr_1[i_2] = tint_symbol_5(buffer, (offset + (i_2 * 256u)));
+      arr_1[i_2] = a_load_1((offset + (i_2 * 256u)));
     }
   }
   return arr_1;
@@ -78,11 +78,11 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = tint_symbol_4(a, 0u);
-  const Outer l_a_i = tint_symbol_5(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = tint_symbol_6(a, (256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = tint_symbol_7(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
-  const matrix<float16_t, 4, 4> l_a_i_a_i_m = tint_symbol_8(a, ((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  const matrix<float16_t, 4, 4> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_4 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_9 = a[scalar_offset_4 / 4];
   uint2 ubo_load_8 = ((scalar_offset_4 & 2) ? ubo_load_9.zw : ubo_load_9.xy);
@@ -98,6 +98,3 @@
   const float16_t l_a_i_a_i_m_i_i = float16_t(f16tof32(((a[scalar_offset_index / 4][scalar_offset_index % 4] >> (scalar_offset_bytes % 4 == 0 ? 0 : 16)) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000022FAD9FCD80(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index cb11b50..1a03a61 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -11,57 +11,57 @@
   uint4 a[64];
 };
 
-matrix<float16_t, 4, 4> tint_symbol_4(uint4 buffer[64], uint offset) {
+matrix<float16_t, 4, 4> a_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = a[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = a[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = a[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = a[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
   return matrix<float16_t, 4, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]), vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]));
 }
 
-Inner tint_symbol_3(uint4 buffer[64], uint offset) {
-  const Inner tint_symbol_7 = {tint_symbol_4(buffer, (offset + 0u))};
-  return tint_symbol_7;
+Inner a_load_3(uint offset) {
+  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  return tint_symbol;
 }
 
-typedef Inner tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[64], uint offset) {
+typedef Inner a_load_2_ret[4];
+a_load_2_ret a_load_2(uint offset) {
   Inner arr[4] = (Inner[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_3(buffer, (offset + (i * 64u)));
+      arr[i] = a_load_3((offset + (i * 64u)));
     }
   }
   return arr;
 }
 
-Outer tint_symbol_1(uint4 buffer[64], uint offset) {
-  const Outer tint_symbol_8 = {tint_symbol_2(buffer, (offset + 0u))};
-  return tint_symbol_8;
+Outer a_load_1(uint offset) {
+  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  return tint_symbol_1;
 }
 
-typedef Outer tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[64], uint offset) {
+typedef Outer a_load_ret[4];
+a_load_ret a_load(uint offset) {
   Outer arr_1[4] = (Outer[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr_1[i_1] = tint_symbol_1(buffer, (offset + (i_1 * 256u)));
+      arr_1[i_1] = a_load_1((offset + (i_1 * 256u)));
     }
   }
   return arr_1;
@@ -69,11 +69,11 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = tint_symbol(a, 0u);
-  const Outer l_a_3 = tint_symbol_1(a, 768u);
-  const Inner l_a_3_a[4] = tint_symbol_2(a, 768u);
-  const Inner l_a_3_a_2 = tint_symbol_3(a, 896u);
-  const matrix<float16_t, 4, 4> l_a_3_a_2_m = tint_symbol_4(a, 896u);
+  const Outer l_a[4] = a_load(0u);
+  const Outer l_a_3 = a_load_1(768u);
+  const Inner l_a_3_a[4] = a_load_2(768u);
+  const Inner l_a_3_a_2 = a_load_3(896u);
+  const matrix<float16_t, 4, 4> l_a_3_a_2_m = a_load_4(896u);
   uint2 ubo_load_8 = a[56].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
@@ -81,6 +81,3 @@
   const float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(((a[56].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000015C09593480(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_builtin.wgsl.expected.fxc.hlsl
index 05b1dfe..3cc5b75 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,24 +4,24 @@
   uint4 u[32];
 };
 
-matrix<float16_t, 4, 4> tint_symbol(uint4 buffer[32], uint offset) {
+matrix<float16_t, 4, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 4> t = transpose(tint_symbol(u, 264u));
+  const matrix<float16_t, 4, 4> t = transpose(u_load(264u));
   uint2 ubo_load_8 = u[1].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
@@ -41,6 +41,3 @@
   const float16_t a = abs(vector<float16_t, 4>(ubo_load_9_xz[0], ubo_load_9_yw[0], ubo_load_9_xz[1], ubo_load_9_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000025F14CDF3D0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.fxc.hlsl
index e6dbe02..47c891f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -25,43 +25,43 @@
 void e(float16_t f_1) {
 }
 
-matrix<float16_t, 4, 4> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 4, 4> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
   return matrix<float16_t, 4, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]), vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4]), tint_symbol_3(buffer, (offset + 8u)), asint(buffer[scalar_offset_5 / 4][scalar_offset_5 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -69,9 +69,9 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
-  b(tint_symbol_1(u, 256u));
-  c(tint_symbol_3(u, 264u));
+  a(u_load(0u));
+  b(u_load_1(256u));
+  c(u_load_3(264u));
   uint2 ubo_load_8 = u[1].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
@@ -82,6 +82,3 @@
   e(vector<float16_t, 4>(ubo_load_9_xz[0], ubo_load_9_yw[0], ubo_load_9_xz[1], ubo_load_9_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000151DEE459C0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.fxc.hlsl
index a642960..3a10cd7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.fxc.hlsl
@@ -11,43 +11,43 @@
 };
 static S p[4] = (S[4])0;
 
-matrix<float16_t, 4, 4> tint_symbol_3(uint4 buffer[32], uint offset) {
+matrix<float16_t, 4, 4> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
   return matrix<float16_t, 4, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]), vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]));
 }
 
-S tint_symbol_1(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_5 = {asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4]), tint_symbol_3(buffer, (offset + 8u)), asint(buffer[scalar_offset_5 / 4][scalar_offset_5 % 4])};
-  return tint_symbol_5;
+  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_ret[4];
-tint_symbol_ret tint_symbol(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      arr[i] = tint_symbol_1(buffer, (offset + (i * 128u)));
+      arr[i] = u_load_1((offset + (i * 128u)));
     }
   }
   return arr;
@@ -55,15 +55,12 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
-  p[1] = tint_symbol_1(u, 256u);
-  p[3].m = tint_symbol_3(u, 264u);
+  p = u_load(0u);
+  p[1] = u_load_1(256u);
+  p[3].m = u_load_3(264u);
   uint2 ubo_load_8 = u[1].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
   p[1].m[0] = vector<float16_t, 4>(ubo_load_8_xz[0], ubo_load_8_yw[0], ubo_load_8_xz[1], ubo_load_8_yw[1]).ywxz;
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001D8880F79A0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.fxc.hlsl
index a426c30..4b63f24 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -11,65 +11,65 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol_3(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 24u), value[3u]);
+void s_store_3(uint offset, matrix<float16_t, 4, 4> value) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
+  s.Store<vector<float16_t, 4> >((offset + 24u), value[3u]);
 }
 
-void tint_symbol_1(RWByteAddressBuffer buffer, uint offset, S value) {
-  buffer.Store((offset + 0u), asuint(value.before));
-  tint_symbol_3(buffer, (offset + 8u), value.m);
-  buffer.Store((offset + 64u), asuint(value.after));
+void s_store_1(uint offset, S value) {
+  s.Store((offset + 0u), asuint(value.before));
+  s_store_3((offset + 8u), value.m);
+  s.Store((offset + 64u), asuint(value.after));
 }
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, S value[4]) {
-  S array[4] = value;
+void s_store(uint offset, S value[4]) {
+  S array_1[4] = value;
   {
     for(uint i = 0u; (i < 4u); i = (i + 1u)) {
-      tint_symbol_1(buffer, (offset + (i * 128u)), array[i]);
+      s_store_1((offset + (i * 128u)), array_1[i]);
     }
   }
 }
 
-matrix<float16_t, 4, 4> tint_symbol_8(uint4 buffer[32], uint offset) {
+matrix<float16_t, 4, 4> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
   return matrix<float16_t, 4, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]), vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]));
 }
 
-S tint_symbol_6(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_10 = {asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4]), tint_symbol_8(buffer, (offset + 8u)), asint(buffer[scalar_offset_5 / 4][scalar_offset_5 % 4])};
-  return tint_symbol_10;
+  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  return tint_symbol;
 }
 
-typedef S tint_symbol_5_ret[4];
-tint_symbol_5_ret tint_symbol_5(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_6(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -77,15 +77,12 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_5(u, 0u));
-  tint_symbol_1(s, 128u, tint_symbol_6(u, 256u));
-  tint_symbol_3(s, 392u, tint_symbol_8(u, 264u));
+  s_store(0u, u_load(0u));
+  s_store_1(128u, u_load_1(256u));
+  s_store_3(392u, u_load_3(264u));
   uint2 ubo_load_8 = u[1].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
   s.Store<vector<float16_t, 4> >(136u, vector<float16_t, 4>(ubo_load_8_xz[0], ubo_load_8_yw[0], ubo_load_8_xz[1], ubo_load_8_yw[1]).ywxz);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000013BAAFBAEB0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
index a09f876..22d98fd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -15,43 +15,43 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 4, 4> tint_symbol_5(uint4 buffer[32], uint offset) {
+matrix<float16_t, 4, 4> u_load_3(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
   return matrix<float16_t, 4, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]), vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]), vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]));
 }
 
-S tint_symbol_3(uint4 buffer[32], uint offset) {
+S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_8 = {asint(buffer[scalar_offset_4 / 4][scalar_offset_4 % 4]), tint_symbol_5(buffer, (offset + 8u)), asint(buffer[scalar_offset_5 / 4][scalar_offset_5 % 4])};
-  return tint_symbol_8;
+  const S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  return tint_symbol_3;
 }
 
-typedef S tint_symbol_2_ret[4];
-tint_symbol_2_ret tint_symbol_2(uint4 buffer[32], uint offset) {
+typedef S u_load_ret[4];
+u_load_ret u_load(uint offset) {
   S arr[4] = (S[4])0;
   {
     for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
-      arr[i_1] = tint_symbol_3(buffer, (offset + (i_1 * 128u)));
+      arr[i_1] = u_load_1((offset + (i_1 * 128u)));
     }
   }
   return arr;
@@ -61,14 +61,14 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_7 = (S)0;
-      w[i] = tint_symbol_7;
+      const S tint_symbol_2 = (S)0;
+      w[i] = tint_symbol_2;
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
-  w[1] = tint_symbol_3(u, 256u);
-  w[3].m = tint_symbol_5(u, 264u);
+  w = u_load(0u);
+  w[1] = u_load_1(256u);
+  w[3].m = u_load_3(264u);
   uint2 ubo_load_8 = u[1].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
@@ -80,6 +80,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001355D73AE70(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 02ff823..a5a8edf 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,23 +10,20 @@
   return counter;
 }
 
-matrix<float16_t, 2, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 2> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = m[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = m[scalar_offset_1 / 4][scalar_offset_1 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
   const int p_m_i_save = i();
-  const matrix<float16_t, 2, 2> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 2, 2> l_m = m_load(0u);
   const uint scalar_offset_2 = ((4u * uint(p_m_i_save))) / 4;
   uint ubo_load_2 = m[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const vector<float16_t, 2> l_m_i = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000021290B9AF00(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index d28f04f..87e4793 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,21 +10,18 @@
   return counter;
 }
 
-matrix<float16_t, 2, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 2> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = m[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = m[scalar_offset_1 / 4][scalar_offset_1 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 2, 2> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 2, 2> l_m = m_load(0u);
   uint ubo_load_2 = m[0].y;
   const vector<float16_t, 2> l_m_1 = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001899F313180(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_builtin.wgsl.expected.fxc.hlsl
index aedd56c..38fc7bc 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,23 +4,20 @@
   uint4 u[1];
 };
 
-matrix<float16_t, 2, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 2, 2> t = transpose(tint_symbol(u, 0u));
+  const matrix<float16_t, 2, 2> t = transpose(u_load(0u));
   uint ubo_load_2 = u[0].y;
   const float16_t l = length(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
   uint ubo_load_3 = u[0].x;
   const float16_t a = abs(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))).yx.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001C84DC29980(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.fxc.hlsl
index a5b412f..0e8d42f 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -13,17 +13,17 @@
 void c(float16_t f_1) {
 }
 
-matrix<float16_t, 2, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
+  a(u_load(0u));
   uint ubo_load_2 = u[0].y;
   b(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
   uint ubo_load_3 = u[0].y;
@@ -33,8 +33,3 @@
   c(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))).yx.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000020E82D03620(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000020E82D03620(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000020E82D03620(11,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.fxc.hlsl
index 56e9dbe..21b4f43 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.fxc.hlsl
@@ -5,17 +5,17 @@
 };
 static matrix<float16_t, 2, 2> p = matrix<float16_t, 2, 2>(float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h));
 
-matrix<float16_t, 2, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
+  p = u_load(0u);
   uint ubo_load_2 = u[0].x;
   p[1] = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16)));
   uint ubo_load_3 = u[0].x;
@@ -23,6 +23,3 @@
   p[0][1] = float16_t(f16tof32(((u[0].y) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000021A30FC4890(4,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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.fxc.hlsl
index 1883b2f..48e322d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -5,22 +5,22 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+void s_store(uint offset, matrix<float16_t, 2, 2> value) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
 }
 
-matrix<float16_t, 2, 2> tint_symbol_2(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_2(u, 0u));
+  s_store(0u, u_load(0u));
   uint ubo_load_2 = u[0].x;
   s.Store<vector<float16_t, 2> >(4u, vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
   uint ubo_load_3 = u[0].x;
@@ -28,7 +28,3 @@
   s.Store<float16_t>(2u, float16_t(f16tof32(((u[0].y) & 0xFFFF))));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001FAF34C3EE0(6,66-74): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001FAF34C3EE0(7,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
index 90c5813..e2cab68 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -9,11 +9,11 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 2, 2> tint_symbol_2(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))));
 }
 
@@ -22,7 +22,7 @@
     w = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
+  w = u_load(0u);
   uint ubo_load_2 = u[0].x;
   w[1] = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16)));
   uint ubo_load_3 = u[0].x;
@@ -35,6 +35,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000022F004DAD50(4,20-28): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index a0e5889..a83d3fd 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,14 +10,14 @@
   return counter;
 }
 
-matrix<float16_t, 2, 3> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 3> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = m[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = m[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
@@ -27,7 +27,7 @@
 [numthreads(1, 1, 1)]
 void f() {
   const int p_m_i_save = i();
-  const matrix<float16_t, 2, 3> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 2, 3> l_m = m_load(0u);
   const uint scalar_offset_2 = ((8u * uint(p_m_i_save))) / 4;
   uint4 ubo_load_5 = m[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
@@ -36,6 +36,3 @@
   const vector<float16_t, 3> l_m_i = vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002573701B0D0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 74aeaa6..48fc292 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,14 +10,14 @@
   return counter;
 }
 
-matrix<float16_t, 2, 3> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 3> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = m[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = m[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
@@ -26,13 +26,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 2, 3> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 2, 3> l_m = m_load(0u);
   uint2 ubo_load_4 = m[0].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const vector<float16_t, 3> l_m_1 = vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F0B4D13EF0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_builtin.wgsl.expected.fxc.hlsl
index 8774da1..fc617dd 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,14 +4,14 @@
   uint4 u[1];
 };
 
-matrix<float16_t, 2, 3> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
@@ -20,7 +20,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 3, 2> t = transpose(tint_symbol(u, 0u));
+  const matrix<float16_t, 3, 2> t = transpose(u_load(0u));
   uint2 ubo_load_4 = u[0].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -31,6 +31,3 @@
   const float16_t a = abs(vector<float16_t, 3>(ubo_load_5_xz[0], ubo_load_5_y, ubo_load_5_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000024F9111AD30(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.fxc.hlsl
index 5aa92fe..7942770 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
 void c(float16_t f_1) {
 }
 
-matrix<float16_t, 2, 3> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
@@ -29,7 +29,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
+  a(u_load(0u));
   uint2 ubo_load_4 = u[0].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -45,8 +45,3 @@
   c(vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000239ABA8AAE0(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000239ABA8AAE0(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000239ABA8AAE0(11,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.fxc.hlsl
index 9ceeb9d..ab21020 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.fxc.hlsl
@@ -5,14 +5,14 @@
 };
 static matrix<float16_t, 2, 3> p = matrix<float16_t, 2, 3>(float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h));
 
-matrix<float16_t, 2, 3> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
@@ -21,7 +21,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
+  p = u_load(0u);
   uint2 ubo_load_4 = u[0].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -33,6 +33,3 @@
   p[0][1] = float16_t(f16tof32(((u[0].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000017EBF6D45E0(4,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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.fxc.hlsl
index ddbe694..7bd0d11 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -5,19 +5,19 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+void s_store(uint offset, matrix<float16_t, 2, 3> value) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
 }
 
-matrix<float16_t, 2, 3> tint_symbol_2(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
@@ -26,7 +26,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_2(u, 0u));
+  s_store(0u, u_load(0u));
   uint2 ubo_load_4 = u[0].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -38,7 +38,3 @@
   s.Store<float16_t>(2u, float16_t(f16tof32(((u[0].z) & 0xFFFF))));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000015012B07F20(6,66-74): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000015012B07F20(7,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
index 2285b54..63b115d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -9,14 +9,14 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 2, 3> tint_symbol_2(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
@@ -28,7 +28,7 @@
     w = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
+  w = u_load(0u);
   uint2 ubo_load_4 = u[0].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -45,6 +45,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000293678839C0(4,20-28): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 10e8ba9..6189ae0 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,14 +10,14 @@
   return counter;
 }
 
-matrix<float16_t, 2, 4> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 4> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = m[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = m[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
@@ -27,7 +27,7 @@
 [numthreads(1, 1, 1)]
 void f() {
   const int p_m_i_save = i();
-  const matrix<float16_t, 2, 4> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 2, 4> l_m = m_load(0u);
   const uint scalar_offset_2 = ((8u * uint(p_m_i_save))) / 4;
   uint4 ubo_load_5 = m[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
@@ -36,6 +36,3 @@
   const vector<float16_t, 4> l_m_i = vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F513868710(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index fe05023..78981b0 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,14 +10,14 @@
   return counter;
 }
 
-matrix<float16_t, 2, 4> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 4> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = m[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = m[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
@@ -26,13 +26,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 2, 4> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 2, 4> l_m = m_load(0u);
   uint2 ubo_load_4 = m[0].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const vector<float16_t, 4> l_m_1 = vector<float16_t, 4>(ubo_load_4_xz[0], ubo_load_4_yw[0], ubo_load_4_xz[1], ubo_load_4_yw[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002523DBC4780(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_builtin.wgsl.expected.fxc.hlsl
index db1a663..d0a7d3b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,14 +4,14 @@
   uint4 u[1];
 };
 
-matrix<float16_t, 2, 4> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
@@ -20,7 +20,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 2> t = transpose(tint_symbol(u, 0u));
+  const matrix<float16_t, 4, 2> t = transpose(u_load(0u));
   uint2 ubo_load_4 = u[0].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -31,6 +31,3 @@
   const float16_t a = abs(vector<float16_t, 4>(ubo_load_5_xz[0], ubo_load_5_yw[0], ubo_load_5_xz[1], ubo_load_5_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000020C30943680(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.fxc.hlsl
index 7305b4e..28ddd0e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
 void c(float16_t f_1) {
 }
 
-matrix<float16_t, 2, 4> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
@@ -29,7 +29,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
+  a(u_load(0u));
   uint2 ubo_load_4 = u[0].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -45,8 +45,3 @@
   c(vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000273F7AEC5E0(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000273F7AEC5E0(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000273F7AEC5E0(11,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.fxc.hlsl
index 94095cb..23af438 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.fxc.hlsl
@@ -5,14 +5,14 @@
 };
 static matrix<float16_t, 2, 4> p = matrix<float16_t, 2, 4>(float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h));
 
-matrix<float16_t, 2, 4> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
@@ -21,7 +21,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
+  p = u_load(0u);
   uint2 ubo_load_4 = u[0].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -33,6 +33,3 @@
   p[0][1] = float16_t(f16tof32(((u[0].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000014E53D58AD0(4,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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.fxc.hlsl
index 8723863..15135f4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -5,19 +5,19 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 2, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+void s_store(uint offset, matrix<float16_t, 2, 4> value) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
 }
 
-matrix<float16_t, 2, 4> tint_symbol_2(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
@@ -26,7 +26,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_2(u, 0u));
+  s_store(0u, u_load(0u));
   uint2 ubo_load_4 = u[0].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -38,7 +38,3 @@
   s.Store<float16_t>(2u, float16_t(f16tof32(((u[0].z) & 0xFFFF))));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000015E10277FD0(6,66-74): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000015E10277FD0(7,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
index b2c263b..c22dbd5 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -9,14 +9,14 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 2, 4> tint_symbol_2(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
@@ -28,7 +28,7 @@
     w = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
+  w = u_load(0u);
   uint2 ubo_load_4 = u[0].xy;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -45,6 +45,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000018E62EDA940(4,20-28): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index aa9b9a5..78450d9 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,25 +10,22 @@
   return counter;
 }
 
-matrix<float16_t, 3, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 3, 2> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = m[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = m[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = m[scalar_offset_2 / 4][scalar_offset_2 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
   const int p_m_i_save = i();
-  const matrix<float16_t, 3, 2> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 3, 2> l_m = m_load(0u);
   const uint scalar_offset_3 = ((4u * uint(p_m_i_save))) / 4;
   uint ubo_load_3 = m[scalar_offset_3 / 4][scalar_offset_3 % 4];
   const vector<float16_t, 2> l_m_i = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000022586D0B760(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 09304d6..b22b09c 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,23 +10,20 @@
   return counter;
 }
 
-matrix<float16_t, 3, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 3, 2> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = m[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = m[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = m[scalar_offset_2 / 4][scalar_offset_2 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 3, 2> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 3, 2> l_m = m_load(0u);
   uint ubo_load_3 = m[0].y;
   const vector<float16_t, 2> l_m_1 = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000213B52029A0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_builtin.wgsl.expected.fxc.hlsl
index 6906207..f4ca7af 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,25 +4,22 @@
   uint4 u[1];
 };
 
-matrix<float16_t, 3, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 3, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 2, 3> t = transpose(tint_symbol(u, 0u));
+  const matrix<float16_t, 2, 3> t = transpose(u_load(0u));
   uint ubo_load_3 = u[0].y;
   const float16_t l = length(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
   uint ubo_load_4 = u[0].x;
   const float16_t a = abs(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))).yx.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002BC2002A7B0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.fxc.hlsl
index 2f2e1d5..4259863 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -13,19 +13,19 @@
 void c(float16_t f_1) {
 }
 
-matrix<float16_t, 3, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 3, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
+  a(u_load(0u));
   uint ubo_load_3 = u[0].y;
   b(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
   uint ubo_load_4 = u[0].y;
@@ -35,8 +35,3 @@
   c(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_5 & 0xFFFF)), float16_t(f16tof32(ubo_load_5 >> 16))).yx.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000014896F24370(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000014896F24370(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000014896F24370(11,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.fxc.hlsl
index d8d5d22..83118f7 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.fxc.hlsl
@@ -5,19 +5,19 @@
 };
 static matrix<float16_t, 3, 2> p = matrix<float16_t, 3, 2>(float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h));
 
-matrix<float16_t, 3, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 3, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
+  p = u_load(0u);
   uint ubo_load_3 = u[0].x;
   p[1] = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16)));
   uint ubo_load_4 = u[0].x;
@@ -25,6 +25,3 @@
   p[0][1] = float16_t(f16tof32(((u[0].y) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001D559EA82A0(4,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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.fxc.hlsl
index 3e6bbdf..50fca82 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -5,25 +5,25 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 3, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
+void s_store(uint offset, matrix<float16_t, 3, 2> value) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
 }
 
-matrix<float16_t, 3, 2> tint_symbol_2(uint4 buffer[1], uint offset) {
+matrix<float16_t, 3, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_2(u, 0u));
+  s_store(0u, u_load(0u));
   uint ubo_load_3 = u[0].x;
   s.Store<vector<float16_t, 2> >(4u, vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
   uint ubo_load_4 = u[0].x;
@@ -31,7 +31,3 @@
   s.Store<float16_t>(2u, float16_t(f16tof32(((u[0].y) & 0xFFFF))));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000027290DF7F00(6,66-74): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000027290DF7F00(7,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
index ed15e19..39cb2c2 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -9,13 +9,13 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 3, 2> tint_symbol_2(uint4 buffer[1], uint offset) {
+matrix<float16_t, 3, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
 }
 
@@ -24,7 +24,7 @@
     w = matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
+  w = u_load(0u);
   uint ubo_load_3 = u[0].x;
   w[1] = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16)));
   uint ubo_load_4 = u[0].x;
@@ -37,6 +37,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000020735C921C0(4,20-28): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index dd2a0ab..9425151 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,19 +10,19 @@
   return counter;
 }
 
-matrix<float16_t, 3, 3> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 3> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = m[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = m[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = m[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -32,7 +32,7 @@
 [numthreads(1, 1, 1)]
 void f() {
   const int p_m_i_save = i();
-  const matrix<float16_t, 3, 3> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 3, 3> l_m = m_load(0u);
   const uint scalar_offset_3 = ((8u * uint(p_m_i_save))) / 4;
   uint4 ubo_load_7 = m[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
@@ -41,6 +41,3 @@
   const vector<float16_t, 3> l_m_i = vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F17CCCC790(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index fa7dc22..f9d80ea 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,19 +10,19 @@
   return counter;
 }
 
-matrix<float16_t, 3, 3> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 3> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = m[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = m[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = m[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -31,13 +31,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 3, 3> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 3, 3> l_m = m_load(0u);
   uint2 ubo_load_6 = m[0].zw;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
   const vector<float16_t, 3> l_m_1 = vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001DA8C8147C0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_builtin.wgsl.expected.fxc.hlsl
index b0bfbfc..27c3fe1 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,19 +4,19 @@
   uint4 u[2];
 };
 
-matrix<float16_t, 3, 3> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -25,7 +25,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 3, 3> t = transpose(tint_symbol(u, 0u));
+  const matrix<float16_t, 3, 3> t = transpose(u_load(0u));
   uint2 ubo_load_6 = u[0].zw;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -36,6 +36,3 @@
   const float16_t a = abs(vector<float16_t, 3>(ubo_load_7_xz[0], ubo_load_7_y, ubo_load_7_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000233E8349550(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.fxc.hlsl
index 88bb888..7f66478 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -13,19 +13,19 @@
 void c(float16_t f_1) {
 }
 
-matrix<float16_t, 3, 3> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -34,7 +34,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
+  a(u_load(0u));
   uint2 ubo_load_6 = u[0].zw;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -50,8 +50,3 @@
   c(vector<float16_t, 3>(ubo_load_8_xz[0], ubo_load_8_y, ubo_load_8_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000024400654510(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000024400654510(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000024400654510(11,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.fxc.hlsl
index 51b24ed..e61eaab 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.fxc.hlsl
@@ -5,19 +5,19 @@
 };
 static matrix<float16_t, 3, 3> p = matrix<float16_t, 3, 3>(float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h));
 
-matrix<float16_t, 3, 3> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -26,7 +26,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
+  p = u_load(0u);
   uint2 ubo_load_6 = u[0].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -38,6 +38,3 @@
   p[0][1] = float16_t(f16tof32(((u[0].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000024859339490(4,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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.fxc.hlsl
index b7409a7..a2068a3 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -5,25 +5,25 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 3, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
+void s_store(uint offset, matrix<float16_t, 3, 3> value) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
 }
 
-matrix<float16_t, 3, 3> tint_symbol_2(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_2(u, 0u));
+  s_store(0u, u_load(0u));
   uint2 ubo_load_6 = u[0].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -44,7 +44,3 @@
   s.Store<float16_t>(2u, float16_t(f16tof32(((u[0].z) & 0xFFFF))));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002A95A169E30(6,66-74): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002A95A169E30(7,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
index 960e913..d350b00 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -9,19 +9,19 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 3, 3> tint_symbol_2(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -33,7 +33,7 @@
     w = matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
+  w = u_load(0u);
   uint2 ubo_load_6 = u[0].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -50,6 +50,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000027B0D02C6A0(4,20-28): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 2f16db2..8a33e42 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,19 +10,19 @@
   return counter;
 }
 
-matrix<float16_t, 3, 4> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 4> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = m[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = m[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = m[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -32,7 +32,7 @@
 [numthreads(1, 1, 1)]
 void f() {
   const int p_m_i_save = i();
-  const matrix<float16_t, 3, 4> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 3, 4> l_m = m_load(0u);
   const uint scalar_offset_3 = ((8u * uint(p_m_i_save))) / 4;
   uint4 ubo_load_7 = m[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
@@ -41,6 +41,3 @@
   const vector<float16_t, 4> l_m_i = vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001FCC8F3EC10(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index be7103a..1b1c773 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,19 +10,19 @@
   return counter;
 }
 
-matrix<float16_t, 3, 4> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 4> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = m[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = m[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = m[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -31,13 +31,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 3, 4> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 3, 4> l_m = m_load(0u);
   uint2 ubo_load_6 = m[0].zw;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
   const vector<float16_t, 4> l_m_1 = vector<float16_t, 4>(ubo_load_6_xz[0], ubo_load_6_yw[0], ubo_load_6_xz[1], ubo_load_6_yw[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000017BEAA5D290(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_builtin.wgsl.expected.fxc.hlsl
index c2fde4f..45aa7f4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,19 +4,19 @@
   uint4 u[2];
 };
 
-matrix<float16_t, 3, 4> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -25,7 +25,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 3> t = transpose(tint_symbol(u, 0u));
+  const matrix<float16_t, 4, 3> t = transpose(u_load(0u));
   uint2 ubo_load_6 = u[0].zw;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -36,6 +36,3 @@
   const float16_t a = abs(vector<float16_t, 4>(ubo_load_7_xz[0], ubo_load_7_yw[0], ubo_load_7_xz[1], ubo_load_7_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001DE25EAC9C0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.fxc.hlsl
index be27f56..67dec2f 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -13,19 +13,19 @@
 void c(float16_t f_1) {
 }
 
-matrix<float16_t, 3, 4> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -34,7 +34,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
+  a(u_load(0u));
   uint2 ubo_load_6 = u[0].zw;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -50,8 +50,3 @@
   c(vector<float16_t, 4>(ubo_load_8_xz[0], ubo_load_8_yw[0], ubo_load_8_xz[1], ubo_load_8_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002E63B0EDB50(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002E63B0EDB50(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002E63B0EDB50(11,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.fxc.hlsl
index 6db6a05..87af900 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.fxc.hlsl
@@ -5,19 +5,19 @@
 };
 static matrix<float16_t, 3, 4> p = matrix<float16_t, 3, 4>(float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h));
 
-matrix<float16_t, 3, 4> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -26,7 +26,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
+  p = u_load(0u);
   uint2 ubo_load_6 = u[0].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -38,6 +38,3 @@
   p[0][1] = float16_t(f16tof32(((u[0].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002EEEBC7D430(4,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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.fxc.hlsl
index 627d5f9..89394ab 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -5,25 +5,25 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 3, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
+void s_store(uint offset, matrix<float16_t, 3, 4> value) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
 }
 
-matrix<float16_t, 3, 4> tint_symbol_2(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_2(u, 0u));
+  s_store(0u, u_load(0u));
   uint2 ubo_load_6 = u[0].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -44,7 +44,3 @@
   s.Store<float16_t>(2u, float16_t(f16tof32(((u[0].z) & 0xFFFF))));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002438C2DBBB0(6,66-74): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002438C2DBBB0(7,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
index 9774f46..6602a9d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -9,19 +9,19 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 3, 4> tint_symbol_2(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -33,7 +33,7 @@
     w = matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
   }
   GroupMemoryBarrierWithGroupSync();
-  w = tint_symbol_2(u, 0u);
+  w = u_load(0u);
   uint2 ubo_load_6 = u[0].xy;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -50,6 +50,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002AEEC70C750(4,20-28): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 492df55..0f1772c 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,27 +10,24 @@
   return counter;
 }
 
-matrix<float16_t, 4, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 4, 2> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = m[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = m[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = m[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = m[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
   const int p_m_i_save = i();
-  const matrix<float16_t, 4, 2> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 4, 2> l_m = m_load(0u);
   const uint scalar_offset_4 = ((4u * uint(p_m_i_save))) / 4;
   uint ubo_load_4 = m[scalar_offset_4 / 4][scalar_offset_4 % 4];
   const vector<float16_t, 2> l_m_i = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000013D9C70AA90(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index d7d572d..2a99fa9 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,25 +10,22 @@
   return counter;
 }
 
-matrix<float16_t, 4, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 4, 2> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = m[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = m[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = m[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = m[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 2> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 4, 2> l_m = m_load(0u);
   uint ubo_load_4 = m[0].y;
   const vector<float16_t, 2> l_m_1 = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000025078B145D0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_builtin.wgsl.expected.fxc.hlsl
index 8f7f50f..c943d5a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,27 +4,24 @@
   uint4 u[1];
 };
 
-matrix<float16_t, 4, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 4, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 2, 4> t = transpose(tint_symbol(u, 0u));
+  const matrix<float16_t, 2, 4> t = transpose(u_load(0u));
   uint ubo_load_4 = u[0].y;
   const float16_t l = length(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))));
   uint ubo_load_5 = u[0].x;
   const float16_t a = abs(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_5 & 0xFFFF)), float16_t(f16tof32(ubo_load_5 >> 16))).yx.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001FEE1A64990(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.fxc.hlsl
index 1cae909..5d86c53 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -13,21 +13,21 @@
 void c(float16_t f_1) {
 }
 
-matrix<float16_t, 4, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 4, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
+  a(u_load(0u));
   uint ubo_load_4 = u[0].y;
   b(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))));
   uint ubo_load_5 = u[0].y;
@@ -37,8 +37,3 @@
   c(vector<float16_t, 2>(float16_t(f16tof32(ubo_load_6 & 0xFFFF)), float16_t(f16tof32(ubo_load_6 >> 16))).yx.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F4F9D145E0(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F4F9D145E0(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F4F9D145E0(11,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.fxc.hlsl
index 04ae2e2..dfe6041 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.fxc.hlsl
@@ -5,21 +5,21 @@
 };
 static matrix<float16_t, 4, 2> p = matrix<float16_t, 4, 2>(float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h));
 
-matrix<float16_t, 4, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 4, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
+  p = u_load(0u);
   uint ubo_load_4 = u[0].x;
   p[1] = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16)));
   uint ubo_load_5 = u[0].x;
@@ -27,6 +27,3 @@
   p[0][1] = float16_t(f16tof32(((u[0].y) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001D1582D92D0(4,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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.fxc.hlsl
index 8218a85..e69396b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -5,28 +5,28 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 2> value) {
-  buffer.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
-  buffer.Store<vector<float16_t, 2> >((offset + 12u), value[3u]);
+void s_store(uint offset, matrix<float16_t, 4, 2> value) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), value[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), value[2u]);
+  s.Store<vector<float16_t, 2> >((offset + 12u), value[3u]);
 }
 
-matrix<float16_t, 4, 2> tint_symbol_2(uint4 buffer[1], uint offset) {
+matrix<float16_t, 4, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_2(u, 0u));
+  s_store(0u, u_load(0u));
   uint ubo_load_4 = u[0].x;
   s.Store<vector<float16_t, 2> >(4u, vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16))));
   uint ubo_load_5 = u[0].x;
@@ -34,7 +34,3 @@
   s.Store<float16_t>(2u, float16_t(f16tof32(((u[0].y) & 0xFFFF))));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000252CF939A80(6,66-74): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000252CF939A80(7,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
index 26ab4d8..602d509 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -9,15 +9,15 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 4, 2> tint_symbol_2(uint4 buffer[1], uint offset) {
+matrix<float16_t, 4, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
@@ -26,7 +26,7 @@
     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 = tint_symbol_2(u, 0u);
+  w = u_load(0u);
   uint ubo_load_4 = u[0].x;
   w[1] = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16)));
   uint ubo_load_5 = u[0].x;
@@ -39,6 +39,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001DAFCDE42A0(4,20-28): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 73d44dc..53634f6 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,24 +10,24 @@
   return counter;
 }
 
-matrix<float16_t, 4, 3> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 3> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = m[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = m[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = m[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = m[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -37,7 +37,7 @@
 [numthreads(1, 1, 1)]
 void f() {
   const int p_m_i_save = i();
-  const matrix<float16_t, 4, 3> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 4, 3> l_m = m_load(0u);
   const uint scalar_offset_4 = ((8u * uint(p_m_i_save))) / 4;
   uint4 ubo_load_9 = m[scalar_offset_4 / 4];
   uint2 ubo_load_8 = ((scalar_offset_4 & 2) ? ubo_load_9.zw : ubo_load_9.xy);
@@ -46,6 +46,3 @@
   const vector<float16_t, 3> l_m_i = vector<float16_t, 3>(ubo_load_8_xz[0], ubo_load_8_y, ubo_load_8_xz[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000029A277BC3D0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 77207dc..04f7b35 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,24 +10,24 @@
   return counter;
 }
 
-matrix<float16_t, 4, 3> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 3> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = m[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = m[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = m[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = m[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -36,13 +36,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 3> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 4, 3> l_m = m_load(0u);
   uint2 ubo_load_8 = m[0].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
   const vector<float16_t, 3> l_m_1 = vector<float16_t, 3>(ubo_load_8_xz[0], ubo_load_8_y, ubo_load_8_xz[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001D61ABCB8F0(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_builtin.wgsl.expected.fxc.hlsl
index fa56e93..65d0598 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,24 +4,24 @@
   uint4 u[2];
 };
 
-matrix<float16_t, 4, 3> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 3, 4> t = transpose(tint_symbol(u, 0u));
+  const matrix<float16_t, 3, 4> t = transpose(u_load(0u));
   uint2 ubo_load_8 = u[0].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
@@ -41,6 +41,3 @@
   const float16_t a = abs(vector<float16_t, 3>(ubo_load_9_xz[0], ubo_load_9_y, ubo_load_9_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000214C6C4DE30(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.fxc.hlsl
index 3cff235..3ea9319 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -13,24 +13,24 @@
 void c(float16_t f_1) {
 }
 
-matrix<float16_t, 4, 3> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -39,7 +39,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
+  a(u_load(0u));
   uint2 ubo_load_8 = u[0].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
@@ -55,8 +55,3 @@
   c(vector<float16_t, 3>(ubo_load_10_xz[0], ubo_load_10_y, ubo_load_10_xz[1]).zxy.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F16275ECF0(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F16275ECF0(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F16275ECF0(11,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.fxc.hlsl
index d1183d2..e2ad994 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.fxc.hlsl
@@ -5,24 +5,24 @@
 };
 static matrix<float16_t, 4, 3> p = matrix<float16_t, 4, 3>(float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h));
 
-matrix<float16_t, 4, 3> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -31,7 +31,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
+  p = u_load(0u);
   uint2 ubo_load_8 = u[0].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
@@ -43,6 +43,3 @@
   p[0][1] = float16_t(f16tof32(((u[0].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001A61234DB60(4,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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.fxc.hlsl
index fb2dab0..6ce513e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -5,31 +5,31 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 3> value) {
-  buffer.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
-  buffer.Store<vector<float16_t, 3> >((offset + 24u), value[3u]);
+void s_store(uint offset, matrix<float16_t, 4, 3> value) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), value[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), value[2u]);
+  s.Store<vector<float16_t, 3> >((offset + 24u), value[3u]);
 }
 
-matrix<float16_t, 4, 3> tint_symbol_2(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -38,7 +38,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_2(u, 0u));
+  s_store(0u, u_load(0u));
   uint2 ubo_load_8 = u[0].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
@@ -50,7 +50,3 @@
   s.Store<float16_t>(2u, float16_t(f16tof32(((u[0].z) & 0xFFFF))));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001FD3C2FBCC0(6,66-74): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001FD3C2FBCC0(7,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
index b5fa2ba..f547c86 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -9,24 +9,24 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 4, 3> tint_symbol_2(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -38,7 +38,7 @@
     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 = tint_symbol_2(u, 0u);
+  w = u_load(0u);
   uint2 ubo_load_8 = u[0].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
@@ -55,6 +55,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000019BA46EC370(4,20-28): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index a85dc45..68f36df 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,24 +10,24 @@
   return counter;
 }
 
-matrix<float16_t, 4, 4> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 4> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = m[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = m[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = m[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = m[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -37,7 +37,7 @@
 [numthreads(1, 1, 1)]
 void f() {
   const int p_m_i_save = i();
-  const matrix<float16_t, 4, 4> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 4, 4> l_m = m_load(0u);
   const uint scalar_offset_4 = ((8u * uint(p_m_i_save))) / 4;
   uint4 ubo_load_9 = m[scalar_offset_4 / 4];
   uint2 ubo_load_8 = ((scalar_offset_4 & 2) ? ubo_load_9.zw : ubo_load_9.xy);
@@ -46,6 +46,3 @@
   const vector<float16_t, 4> l_m_i = vector<float16_t, 4>(ubo_load_8_xz[0], ubo_load_8_yw[0], ubo_load_8_xz[1], ubo_load_8_yw[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000021737B8AE70(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 6d03956..5a32826 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -10,24 +10,24 @@
   return counter;
 }
 
-matrix<float16_t, 4, 4> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 4> m_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = m[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = m[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = m[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = m[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -36,13 +36,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 4> l_m = tint_symbol(m, 0u);
+  const matrix<float16_t, 4, 4> l_m = m_load(0u);
   uint2 ubo_load_8 = m[0].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
   const vector<float16_t, 4> l_m_1 = vector<float16_t, 4>(ubo_load_8_xz[0], ubo_load_8_yw[0], ubo_load_8_xz[1], ubo_load_8_yw[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000002055528A940(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_builtin.wgsl.expected.fxc.hlsl
index cb0cc66..4509566 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_builtin.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_builtin.wgsl.expected.fxc.hlsl
@@ -4,24 +4,24 @@
   uint4 u[2];
 };
 
-matrix<float16_t, 4, 4> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 4> t = transpose(tint_symbol(u, 0u));
+  const matrix<float16_t, 4, 4> t = transpose(u_load(0u));
   uint2 ubo_load_8 = u[0].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
@@ -41,6 +41,3 @@
   const float16_t a = abs(vector<float16_t, 4>(ubo_load_9_xz[0], ubo_load_9_yw[0], ubo_load_9_xz[1], ubo_load_9_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000023EC1BAE110(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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.fxc.hlsl
index 212ddb2..26e43bf 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.fxc.hlsl
@@ -13,24 +13,24 @@
 void c(float16_t f_1) {
 }
 
-matrix<float16_t, 4, 4> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -39,7 +39,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  a(tint_symbol(u, 0u));
+  a(u_load(0u));
   uint2 ubo_load_8 = u[0].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
@@ -55,8 +55,3 @@
   c(vector<float16_t, 4>(ubo_load_10_xz[0], ubo_load_10_yw[0], ubo_load_10_xz[1], ubo_load_10_yw[1]).ywxz.x);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001E1E337D1E0(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001E1E337D1E0(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001E1E337D1E0(11,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.fxc.hlsl
index 7bb4eda..923808b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.fxc.hlsl
@@ -5,24 +5,24 @@
 };
 static matrix<float16_t, 4, 4> p = matrix<float16_t, 4, 4>(float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h), float16_t(0.0h));
 
-matrix<float16_t, 4, 4> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -31,7 +31,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  p = tint_symbol(u, 0u);
+  p = u_load(0u);
   uint2 ubo_load_8 = u[0].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
@@ -43,6 +43,3 @@
   p[0][1] = float16_t(f16tof32(((u[0].z) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001F1E6D79B60(4,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.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.fxc.hlsl
index f709acf..63b0181 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.fxc.hlsl
@@ -5,31 +5,31 @@
 };
 RWByteAddressBuffer s : register(u1, space0);
 
-void tint_symbol(RWByteAddressBuffer buffer, uint offset, matrix<float16_t, 4, 4> value) {
-  buffer.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
-  buffer.Store<vector<float16_t, 4> >((offset + 24u), value[3u]);
+void s_store(uint offset, matrix<float16_t, 4, 4> value) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), value[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), value[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), value[2u]);
+  s.Store<vector<float16_t, 4> >((offset + 24u), value[3u]);
 }
 
-matrix<float16_t, 4, 4> tint_symbol_2(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -38,7 +38,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol(s, 0u, tint_symbol_2(u, 0u));
+  s_store(0u, u_load(0u));
   uint2 ubo_load_8 = u[0].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
@@ -50,7 +50,3 @@
   s.Store<float16_t>(2u, float16_t(f16tof32(((u[0].z) & 0xFFFF))));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000017A08509500(6,66-74): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000017A08509500(7,3-14): error X3018: invalid subscript 'Store'
-
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
index ca75021..9af3f4f 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.fxc.hlsl
@@ -9,24 +9,24 @@
   uint local_invocation_index : SV_GroupIndex;
 };
 
-matrix<float16_t, 4, 4> tint_symbol_2(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -38,7 +38,7 @@
     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 = tint_symbol_2(u, 0u);
+  w = u_load(0u);
   uint2 ubo_load_8 = u[0].xy;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
   vector<float16_t, 2> ubo_load_8_yw = vector<float16_t, 2>(f16tof32(ubo_load_8 >> 16));
@@ -55,6 +55,3 @@
   f_inner(tint_symbol.local_invocation_index);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000234396001A0(4,20-28): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/types/f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/types/f16.wgsl.expected.fxc.hlsl
index 063ca53..f8292fb 100644
--- a/test/tint/buffer/uniform/types/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/f16.wgsl.expected.fxc.hlsl
@@ -9,6 +9,3 @@
   const float16_t x = float16_t(f16tof32(((u[0].x) & 0xFFFF)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001B3B36433A0(7,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.fxc.hlsl
index f5360c9..49d216d 100644
--- a/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.fxc.hlsl
@@ -4,19 +4,16 @@
   uint4 u[1];
 };
 
-matrix<float16_t, 2, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  const matrix<float16_t, 2, 2> x = tint_symbol(u, 0u);
+  const matrix<float16_t, 2, 2> x = u_load(0u);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000017F74BE8F50(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.fxc.hlsl
index cda8557..b527831 100644
--- a/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.fxc.hlsl
@@ -4,14 +4,14 @@
   uint4 u[1];
 };
 
-matrix<float16_t, 2, 3> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
@@ -20,9 +20,6 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  const matrix<float16_t, 2, 3> x = tint_symbol(u, 0u);
+  const matrix<float16_t, 2, 3> x = u_load(0u);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000248395CA260(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.fxc.hlsl
index 8f306c1..5bed2cb 100644
--- a/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.fxc.hlsl
@@ -4,14 +4,14 @@
   uint4 u[1];
 };
 
-matrix<float16_t, 2, 4> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 2, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
@@ -20,9 +20,6 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  const matrix<float16_t, 2, 4> x = tint_symbol(u, 0u);
+  const matrix<float16_t, 2, 4> x = u_load(0u);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000010C86099F60(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.fxc.hlsl
index 32c5415..90a45ee 100644
--- a/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.fxc.hlsl
@@ -4,21 +4,18 @@
   uint4 u[1];
 };
 
-matrix<float16_t, 3, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 3, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  const matrix<float16_t, 3, 2> x = tint_symbol(u, 0u);
+  const matrix<float16_t, 3, 2> x = u_load(0u);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000014294788E00(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.fxc.hlsl
index 6b5696d..6c94fbd 100644
--- a/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.fxc.hlsl
@@ -4,19 +4,19 @@
   uint4 u[2];
 };
 
-matrix<float16_t, 3, 3> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
@@ -25,9 +25,6 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  const matrix<float16_t, 3, 3> x = tint_symbol(u, 0u);
+  const matrix<float16_t, 3, 3> x = u_load(0u);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000231800429A0(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.fxc.hlsl
index b410283..36a3a3e 100644
--- a/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.fxc.hlsl
@@ -4,19 +4,19 @@
   uint4 u[2];
 };
 
-matrix<float16_t, 3, 4> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 3, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
@@ -25,9 +25,6 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  const matrix<float16_t, 3, 4> x = tint_symbol(u, 0u);
+  const matrix<float16_t, 3, 4> x = u_load(0u);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001E049208950(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.fxc.hlsl
index a5f251c..48e1684 100644
--- a/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.fxc.hlsl
@@ -4,23 +4,20 @@
   uint4 u[1];
 };
 
-matrix<float16_t, 4, 2> tint_symbol(uint4 buffer[1], uint offset) {
+matrix<float16_t, 4, 2> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint ubo_load = buffer[scalar_offset / 4][scalar_offset % 4];
+  uint ubo_load = u[scalar_offset / 4][scalar_offset % 4];
   const uint scalar_offset_1 = ((offset + 4u)) / 4;
-  uint ubo_load_1 = buffer[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  uint ubo_load_1 = u[scalar_offset_1 / 4][scalar_offset_1 % 4];
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint ubo_load_2 = buffer[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  uint ubo_load_2 = u[scalar_offset_2 / 4][scalar_offset_2 % 4];
   const uint scalar_offset_3 = ((offset + 12u)) / 4;
-  uint ubo_load_3 = buffer[scalar_offset_3 / 4][scalar_offset_3 % 4];
+  uint ubo_load_3 = u[scalar_offset_3 / 4][scalar_offset_3 % 4];
   return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16))));
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  const matrix<float16_t, 4, 2> x = tint_symbol(u, 0u);
+  const matrix<float16_t, 4, 2> x = u_load(0u);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000017761DC8170(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.fxc.hlsl
index 804c81e..16062e1 100644
--- a/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.fxc.hlsl
@@ -4,24 +4,24 @@
   uint4 u[2];
 };
 
-matrix<float16_t, 4, 3> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 3> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
@@ -30,9 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  const matrix<float16_t, 4, 3> x = tint_symbol(u, 0u);
+  const matrix<float16_t, 4, 3> x = u_load(0u);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000184D1079D40(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.fxc.hlsl
index 8b29f19..93c50e1 100644
--- a/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.fxc.hlsl
@@ -4,24 +4,24 @@
   uint4 u[2];
 };
 
-matrix<float16_t, 4, 4> tint_symbol(uint4 buffer[2], uint offset) {
+matrix<float16_t, 4, 4> u_load(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   const uint scalar_offset_2 = ((offset + 16u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   vector<float16_t, 2> ubo_load_4_yw = vector<float16_t, 2>(f16tof32(ubo_load_4 >> 16));
   const uint scalar_offset_3 = ((offset + 24u)) / 4;
-  uint4 ubo_load_7 = buffer[scalar_offset_3 / 4];
+  uint4 ubo_load_7 = u[scalar_offset_3 / 4];
   uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
   vector<float16_t, 2> ubo_load_6_yw = vector<float16_t, 2>(f16tof32(ubo_load_6 >> 16));
@@ -30,9 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  const matrix<float16_t, 4, 4> x = tint_symbol(u, 0u);
+  const matrix<float16_t, 4, 4> x = u_load(0u);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000014CB93FB460(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.fxc.hlsl
index 1c11433..e984a2d 100644
--- a/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.fxc.hlsl
@@ -13,42 +13,39 @@
   uint4 u[2];
 };
 
-matrix<float16_t, 2, 4> tint_symbol_4(uint4 buffer[2], uint offset) {
+matrix<float16_t, 2, 4> u_load_4(uint offset) {
   const uint scalar_offset = ((offset + 0u)) / 4;
-  uint4 ubo_load_1 = buffer[scalar_offset / 4];
+  uint4 ubo_load_1 = u[scalar_offset / 4];
   uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
   vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
   vector<float16_t, 2> ubo_load_yw = vector<float16_t, 2>(f16tof32(ubo_load >> 16));
   const uint scalar_offset_1 = ((offset + 8u)) / 4;
-  uint4 ubo_load_3 = buffer[scalar_offset_1 / 4];
+  uint4 ubo_load_3 = u[scalar_offset_1 / 4];
   uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
   vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
   vector<float16_t, 2> ubo_load_2_yw = vector<float16_t, 2>(f16tof32(ubo_load_2 >> 16));
   return matrix<float16_t, 2, 4>(vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]), vector<float16_t, 4>(ubo_load_2_xz[0], ubo_load_2_yw[0], ubo_load_2_xz[1], ubo_load_2_yw[1]));
 }
 
-Inner tint_symbol_1(uint4 buffer[2], uint offset) {
+Inner u_load_1(uint offset) {
   const uint scalar_offset_bytes = ((offset + 0u));
   const uint scalar_offset_index = scalar_offset_bytes / 4;
   const uint scalar_offset_2 = ((offset + 8u)) / 4;
-  uint4 ubo_load_5 = buffer[scalar_offset_2 / 4];
+  uint4 ubo_load_5 = u[scalar_offset_2 / 4];
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
-  const Inner tint_symbol_6 = {float16_t(f16tof32(((buffer[scalar_offset_index / 4][scalar_offset_index % 4] >> (scalar_offset_bytes % 4 == 0 ? 0 : 16)) & 0xFFFF))), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), tint_symbol_4(buffer, (offset + 16u))};
-  return tint_symbol_6;
+  const Inner tint_symbol = {float16_t(f16tof32(((u[scalar_offset_index / 4][scalar_offset_index % 4] >> (scalar_offset_bytes % 4 == 0 ? 0 : 16)) & 0xFFFF))), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), u_load_4((offset + 16u))};
+  return tint_symbol;
 }
 
-S tint_symbol(uint4 buffer[2], uint offset) {
-  const S tint_symbol_7 = {tint_symbol_1(buffer, (offset + 0u))};
-  return tint_symbol_7;
+S u_load(uint offset) {
+  const S tint_symbol_1 = {u_load_1((offset + 0u))};
+  return tint_symbol_1;
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  const S x = tint_symbol(u, 0u);
+  const S x = u_load(0u);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x0000019B8F8CCCD0(2,3-11): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.fxc.hlsl
index f8f7aad..0542238 100644
--- a/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
   const vector<float16_t, 2> x = vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16)));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x00000244450436F0(8,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.fxc.hlsl
index 52d3b87..c58b556 100644
--- a/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.fxc.hlsl
@@ -12,8 +12,3 @@
   const vector<float16_t, 3> x = vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001734B456BC0(8,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001734B456BC0(9,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001734B456BC0(9,13-22): error X3000: unrecognized identifier 'ubo_load_y'
-
diff --git a/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.fxc.hlsl
index 525facb..de546a0 100644
--- a/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.fxc.hlsl
@@ -12,8 +12,3 @@
   const vector<float16_t, 4> x = vector<float16_t, 4>(ubo_load_xz[0], ubo_load_yw[0], ubo_load_xz[1], ubo_load_yw[1]);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001D83CC52880(8,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001D83CC52880(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\buffer\Shader@0x000001D83CC52880(10,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/bug/chromium/1395241.wgsl.expected.wgsl b/test/tint/bug/chromium/1395241.wgsl.expected.wgsl
index 600828d..35ad8ee 100644
--- a/test/tint/bug/chromium/1395241.wgsl.expected.wgsl
+++ b/test/tint/bug/chromium/1395241.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-SKIP: WGSL generator adds parenthesis which increases nesting depth
+SKIP: FAILED
 
 fn fr6snorm() {
   var bzbxttch = (~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(-(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(-(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(9223372036854775807)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) % 5);
@@ -6,3 +6,4 @@
 bug/chromium/1395241.wgsl:2:145 error: maximum parser recursive depth reached
   var bzbxttch = (~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(-(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(-(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(~(9223372036854775807)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) % 5);
                                                                                                                                                 ^
+
diff --git a/test/tint/bug/tint/1557.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/1557.wgsl.expected.fxc.hlsl
index 89e35ca..0566ede 100644
--- a/test/tint/bug/tint/1557.wgsl.expected.fxc.hlsl
+++ b/test/tint/bug/tint/1557.wgsl.expected.fxc.hlsl
@@ -40,6 +40,3 @@
   }
   return;
 }
-FXC validation failure:
-internal error: no storage type for block output
-
diff --git a/test/tint/bug/tint/1666.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/1666.wgsl.expected.fxc.hlsl
index 7bd4294..593fc23 100644
--- a/test/tint/bug/tint/1666.wgsl.expected.fxc.hlsl
+++ b/test/tint/bug/tint/1666.wgsl.expected.fxc.hlsl
@@ -1,4 +1,4 @@
-SKIP: FAILED - crbug.com/tint/1666
+SKIP: FAILED
 
 void tint_symbol() {
   const int idx = 3;
@@ -31,5 +31,3 @@
   runtime_size_array();
   return;
 }
-FXC validation failure:
-T:\tmp\dawn-temp\dawn-src\test\tint\Shader@0x0000019913EB4550(3,17-31): error X3030: array index out of bounds
diff --git a/test/tint/bug/tint/749.spvasm.expected.dxc.hlsl b/test/tint/bug/tint/749.spvasm.expected.dxc.hlsl
index 149037e..2c170a6 100644
--- a/test/tint/bug/tint/749.spvasm.expected.dxc.hlsl
+++ b/test/tint/bug/tint/749.spvasm.expected.dxc.hlsl
@@ -1 +1,1495 @@
-SKIP: triggers crbug.com/tint/98
+SKIP: FAILED
+
+
+struct QuicksortObject {
+  numbers : array<i32, 10u>,
+}
+
+struct buf0 {
+  /* @offset(0) */
+  resolution : vec2<f32>,
+}
+
+var<private> obj : QuicksortObject;
+
+var<private> gl_FragCoord : vec4<f32>;
+
+@group(0) @binding(0) var<uniform> x_188 : buf0;
+
+var<private> x_GLF_color : vec4<f32>;
+
+fn swap_i1_i1_(i : ptr<function, i32>, j : ptr<function, i32>) {
+  var temp : i32;
+  let x_932 : i32 = temp;
+  temp = 0i;
+  temp = x_932;
+  let x_523 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+  let x_933 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_933;
+  let x_28 : i32 = *(i);
+  let x_934 : i32 = *(j);
+  *(j) = 0i;
+  *(j) = x_934;
+  let x_524 : vec3<f32> = vec3<f32>(x_523.y, x_523.x, x_523.y);
+  let x_935 : i32 = temp;
+  temp = 0i;
+  temp = x_935;
+  let x_30 : ptr<private, i32> = &(obj.numbers[x_28]);
+  let x_936 : i32 = *(x_30);
+  *(x_30) = 0i;
+  *(x_30) = x_936;
+  let x_31 : i32 = *(x_30);
+  let x_937 : i32 = temp;
+  temp = 0i;
+  temp = x_937;
+  temp = x_31;
+  let x_938 : i32 = *(j);
+  *(j) = 0i;
+  *(j) = x_938;
+  let x_525 : vec3<f32> = vec3<f32>(x_523.z, vec3<f32>(1.0f, 2.0f, 3.0f).x, x_523.y);
+  let x_939 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_939;
+  let x_32 : i32 = *(i);
+  let x_940 : i32 = *(x_30);
+  *(x_30) = 0i;
+  *(x_30) = x_940;
+  let x_33 : i32 = *(j);
+  let x_941 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_941;
+  let x_526 : vec3<f32> = vec3<f32>(x_525.x, x_525.z, x_525.z);
+  let x_942 : i32 = *(x_30);
+  *(x_30) = 0i;
+  *(x_30) = x_942;
+  let x_34 : ptr<private, i32> = &(obj.numbers[x_33]);
+  let x_35 : i32 = *(x_34);
+  let x_943 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_943;
+  let x_527 : vec2<f32> = vec2<f32>(x_526.x, x_526.x);
+  let x_36 : ptr<private, i32> = &(obj.numbers[x_32]);
+  let x_528 : vec3<f32> = vec3<f32>(x_524.x, x_524.z, x_524.x);
+  *(x_36) = x_35;
+  let x_944 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_944;
+  let x_529 : vec3<f32> = vec3<f32>(x_526.y, x_526.z, x_526.x);
+  let x_945 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_945;
+  let x_37 : i32 = *(j);
+  let x_946 : i32 = temp;
+  temp = 0i;
+  temp = x_946;
+  let x_530 : vec2<f32> = vec2<f32>(x_529.z, x_529.y);
+  let x_947 : i32 = *(x_34);
+  *(x_34) = 0i;
+  *(x_34) = x_947;
+  let x_38 : i32 = temp;
+  let x_948 : i32 = *(j);
+  *(j) = 0i;
+  *(j) = x_948;
+  let x_531 : vec3<f32> = vec3<f32>(x_527.x, x_526.y, x_526.x);
+  let x_949 : i32 = *(x_36);
+  *(x_36) = 0i;
+  *(x_36) = x_949;
+  let x_950 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_950;
+  let x_532 : vec3<f32> = vec3<f32>(x_528.x, x_528.y, x_528.x);
+  let x_951 : i32 = *(x_34);
+  *(x_34) = 0i;
+  *(x_34) = x_951;
+  obj.numbers[x_37] = x_38;
+  return;
+}
+
+fn performPartition_i1_i1_(l : ptr<function, i32>, h : ptr<function, i32>) -> i32 {
+  var param_3 : i32;
+  var i_1 : i32;
+  var j_1 : i32;
+  var param_2 : i32;
+  var param_1 : i32;
+  var param : i32;
+  var pivot : i32;
+  var x_537 : vec2<f32>;
+  var x_538 : vec3<f32>;
+  let x_952 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_952;
+  let x_41 : i32 = *(h);
+  let x_953 : i32 = *(l);
+  *(l) = 0i;
+  *(l) = x_953;
+  let x_42 : ptr<private, i32> = &(obj.numbers[x_41]);
+  let x_954 : i32 = *(x_42);
+  *(x_42) = 0i;
+  *(x_42) = x_954;
+  let x_43 : i32 = *(x_42);
+  let x_955 : i32 = param_3;
+  param_3 = 0i;
+  param_3 = x_955;
+  let x_534 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+  let x_956 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_956;
+  pivot = x_43;
+  let x_45 : i32 = *(l);
+  let x_957 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_957;
+  let x_958 : i32 = j_1;
+  j_1 = 0i;
+  j_1 = x_958;
+  let x_535 : vec3<f32> = vec3<f32>(x_534.y, x_534.z, x_534.y);
+  let x_959 : i32 = *(l);
+  *(l) = 0i;
+  *(l) = x_959;
+  i_1 = (x_45 - bitcast<i32>(1u));
+  let x_49 : i32 = *(l);
+  let x_536 : vec3<f32> = vec3<f32>(x_534.x, x_534.z, x_535.x);
+  j_1 = 10i;
+  let x_960 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_960;
+  loop {
+    var x_61 : ptr<private, i32>;
+    var x_539 : vec3<f32>;
+    var x_541 : vec3<f32>;
+    let x_961 : i32 = pivot;
+    pivot = 0i;
+    pivot = x_961;
+    let x_962 : i32 = param_1;
+    param_1 = 0i;
+    param_1 = x_962;
+    let x_55 : i32 = j_1;
+    let x_963 : i32 = pivot;
+    pivot = 0i;
+    pivot = x_963;
+    x_537 = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+    let x_964 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_964;
+    let x_56 : i32 = *(h);
+    let x_965 : i32 = *(h);
+    *(h) = 0i;
+    *(h) = x_965;
+    let x_966 : i32 = param;
+    param = 0i;
+    param = x_966;
+    let x_967 : i32 = j_1;
+    j_1 = 0i;
+    j_1 = x_967;
+    x_538 = vec3<f32>(x_534.x, x_537.y, x_534.z);
+    let x_968 : i32 = param;
+    param = 0i;
+    param = x_968;
+    if ((x_55 <= (x_56 - bitcast<i32>(1u)))) {
+    } else {
+      break;
+    }
+    let x_60 : i32 = j_1;
+    let x_969 : i32 = *(x_42);
+    *(x_42) = 0i;
+    *(x_42) = x_969;
+    x_61 = obj.numbers[x_60];
+    let x_970 : i32 = *(h);
+    *(h) = 0i;
+    *(h) = x_970;
+    x_539 = vec3<f32>(x_537.x, x_535.z, x_537.x);
+    let x_971 : i32 = param_1;
+    param_1 = 0i;
+    param_1 = x_971;
+    let x_62 : ptr<undefined, i32> = x_61;
+    let x_972 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_972;
+    let x_63 : i32 = pivot;
+    let x_540 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, x_534.z);
+    let x_973 : i32 = i_1;
+    i_1 = 0i;
+    i_1 = x_973;
+    let x_974 : i32 = *(l);
+    *(l) = 0i;
+    *(l) = x_974;
+    x_541 = vec3<f32>(x_534.y, x_534.x, x_534.y);
+    let x_975 : i32 = pivot;
+    pivot = 0i;
+    pivot = x_975;
+    if ((x_62 <= x_63)) {
+      let x_542 : vec3<f32> = vec3<f32>(x_541.z, x_541.x, x_541.x);
+      let x_976 : i32 = param_3;
+      param_3 = 0i;
+      param_3 = x_976;
+      let x_67 : i32 = i_1;
+      let x_977 : i32 = pivot;
+      pivot = 0i;
+      pivot = x_977;
+      let x_543 : vec2<f32> = vec2<f32>(x_539.x, x_541.y);
+      let x_978 : i32 = i_1;
+      i_1 = 0i;
+      i_1 = x_978;
+      let x_979 : i32 = param;
+      param = 0i;
+      param = x_979;
+      i_1 = (x_67 + bitcast<i32>(1u));
+      let x_980 : i32 = *(l);
+      *(l) = 0i;
+      *(l) = x_980;
+      let x_544 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).y, x_540.x);
+      let x_70 : i32 = i_1;
+      let x_545 : vec2<f32> = vec2<f32>(x_537.y, x_538.x);
+      let x_981 : i32 = param;
+      param = 0i;
+      param = x_981;
+      param = x_70;
+      let x_982 : i32 = param;
+      param = 0i;
+      param = x_982;
+      let x_546 : vec2<f32> = vec2<f32>(x_545.x, x_545.x);
+      let x_983 : i32 = i_1;
+      i_1 = 0i;
+      i_1 = x_983;
+      let x_72 : i32 = j_1;
+      param_1 = x_72;
+      let x_984 : i32 = param_3;
+      param_3 = 0i;
+      param_3 = x_984;
+      swap_i1_i1_(&(param), &(param_1));
+      let x_985 : i32 = param_1;
+      param_1 = 0i;
+      param_1 = x_985;
+    }
+    let x_986 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_986;
+
+    continuing {
+      let x_987 : i32 = *(h);
+      *(h) = 0i;
+      *(h) = x_987;
+      let x_74 : i32 = j_1;
+      let x_988 : i32 = *(h);
+      *(h) = 0i;
+      *(h) = x_988;
+      let x_547 : vec3<f32> = vec3<f32>(x_539.x, x_541.z, x_541.z);
+      let x_989 : ptr<undefined, i32> = x_61;
+      x_61 = 0i;
+      x_61 = x_989;
+      let x_990 : i32 = param;
+      param = 0i;
+      param = x_990;
+      j_1 = (1i + x_74);
+      let x_991 : i32 = param_1;
+      param_1 = 0i;
+      param_1 = x_991;
+      let x_548 : vec3<f32> = vec3<f32>(x_541.y, x_541.z, x_541.x);
+      let x_992 : ptr<undefined, i32> = x_61;
+      x_61 = 0i;
+      x_61 = x_992;
+    }
+  }
+  let x_76 : i32 = i_1;
+  let x_993 : i32 = *(x_42);
+  *(x_42) = 0i;
+  *(x_42) = x_993;
+  let x_549 : vec2<f32> = vec2<f32>(x_534.x, x_534.y);
+  let x_994 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_994;
+  let x_995 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_995;
+  i_1 = (1i + x_76);
+  let x_996 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_996;
+  let x_79 : i32 = i_1;
+  let x_997 : i32 = j_1;
+  j_1 = 0i;
+  j_1 = x_997;
+  let x_550 : vec2<f32> = vec2<f32>(x_534.x, x_534.x);
+  let x_998 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_998;
+  param_2 = x_79;
+  let x_551 : vec2<f32> = vec2<f32>(x_534.y, x_536.x);
+  let x_999 : i32 = pivot;
+  pivot = 0i;
+  pivot = x_999;
+  let x_81 : i32 = *(h);
+  let x_552 : vec2<f32> = vec2<f32>(x_550.x, x_549.y);
+  let x_1000 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_1000;
+  param_3 = x_81;
+  let x_1001 : i32 = i_1;
+  i_1 = 0i;
+  i_1 = x_1001;
+  let x_553 : vec2<f32> = vec2<f32>(x_549.y, x_552.x);
+  let x_1002 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_1002;
+  swap_i1_i1_(&(param_2), &(param_3));
+  let x_1003 : i32 = *(l);
+  *(l) = 0i;
+  *(l) = x_1003;
+  let x_554 : vec2<f32> = vec2<f32>(x_536.z, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_1004 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_1004;
+  let x_83 : i32 = i_1;
+  let x_1005 : i32 = param;
+  param = 0i;
+  param = x_1005;
+  let x_555 : vec2<f32> = vec2<f32>(x_534.y, x_534.x);
+  let x_1006 : i32 = j_1;
+  j_1 = 0i;
+  j_1 = x_1006;
+  return x_83;
+}
+
+fn quicksort_() {
+  var param_4 : i32;
+  var h_1 : i32;
+  var p : i32;
+  var l_1 : i32;
+  var top : i32;
+  var stack : array<i32, 10u>;
+  var param_5 : i32;
+  l_1 = 0i;
+  let x_1007 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1007;
+  h_1 = 9i;
+  let x_1008 : array<i32, 10u> = stack;
+  stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+  stack = x_1008;
+  let x_556 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_1009 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1009;
+  top = -1i;
+  let x_1010 : i32 = p;
+  p = 0i;
+  p = x_1010;
+  let x_93 : i32 = top;
+  let x_557 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).x);
+  let x_1011 : i32 = p;
+  p = 0i;
+  p = x_1011;
+  let x_94 : i32 = (x_93 + bitcast<i32>(1u));
+  let x_1012 : i32 = top;
+  top = 0i;
+  top = x_1012;
+  let x_558 : vec2<f32> = vec2<f32>(x_556.y, x_557.y);
+  let x_1013 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1013;
+  top = x_94;
+  let x_1014 : i32 = h_1;
+  h_1 = 0i;
+  h_1 = x_1014;
+  let x_559 : vec3<f32> = vec3<f32>(x_557.y, x_557.x, x_557.x);
+  let x_1015 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1015;
+  let x_95 : i32 = l_1;
+  let x_1016 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_1016;
+  let x_560 : vec3<f32> = vec3<f32>(x_559.y, x_559.x, x_557.x);
+  let x_96 : ptr<function, i32> = &(stack[x_94]);
+  let x_1017 : array<i32, 10u> = stack;
+  stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+  stack = x_1017;
+  let x_561 : vec3<f32> = vec3<f32>(x_556.y, x_556.y, x_556.y);
+  let x_1018 : i32 = l_1;
+  l_1 = 0i;
+  l_1 = 0i;
+  *(x_96) = x_95;
+  let x_1019 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1019;
+  let x_97 : i32 = top;
+  let x_1020 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1020;
+  let x_562 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, x_558.y, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_1021 : i32 = *(x_96);
+  *(x_96) = 0i;
+  *(x_96) = x_1021;
+  let x_98 : i32 = (x_97 + 1i);
+  let x_1022 : i32 = *(x_96);
+  *(x_96) = 0i;
+  *(x_96) = x_1022;
+  let x_563 : vec3<f32> = vec3<f32>(x_559.x, x_559.z, x_556.y);
+  top = x_98;
+  let x_1023 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1023;
+  let x_99 : i32 = h_1;
+  let x_1024 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1024;
+  let x_564 : vec3<f32> = vec3<f32>(x_558.x, x_561.x, x_558.y);
+  let x_1025 : i32 = l_1;
+  l_1 = 0i;
+  l_1 = x_1025;
+  let x_100 : ptr<function, i32> = &(stack[x_98]);
+  let x_1026 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1026;
+  let x_565 : vec2<f32> = vec2<f32>(x_564.z, x_564.z);
+  let x_1027 : i32 = p;
+  p = 0i;
+  p = x_1027;
+  *(x_100) = x_99;
+  loop {
+    let x_566 : vec3<f32> = vec3<f32>(x_563.x, x_563.x, x_563.x);
+    let x_1028 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1028;
+    let x_1029 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1029;
+    let x_106 : i32 = top;
+    let x_1030 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1030;
+    let x_567 : vec2<f32> = vec2<f32>(x_558.x, x_564.z);
+    let x_1031 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1031;
+    if ((x_106 >= bitcast<i32>(0u))) {
+    } else {
+      break;
+    }
+    let x_1032 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_1032;
+    let x_568 : vec3<f32> = vec3<f32>(x_559.y, x_559.x, x_563.y);
+    let x_1033 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1033;
+    let x_108 : i32 = top;
+    let x_569 : vec3<f32> = vec3<f32>(x_565.x, x_567.y, x_565.x);
+    let x_1034 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1034;
+    let x_570 : vec2<f32> = vec2<f32>(x_556.x, x_556.x);
+    let x_1035 : i32 = p;
+    p = 0i;
+    p = x_1035;
+    top = (x_108 - bitcast<i32>(1u));
+    let x_1036 : i32 = p;
+    p = 0i;
+    p = x_1036;
+    let x_110 : ptr<function, i32> = &(stack[x_108]);
+    let x_1037 : i32 = *(x_96);
+    *(x_96) = 0i;
+    *(x_96) = x_1037;
+    let x_111 : i32 = *(x_110);
+    let x_1038 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1038;
+    let x_571 : vec3<f32> = vec3<f32>(x_559.y, x_559.x, x_564.y);
+    let x_1039 : i32 = l_1;
+    l_1 = 0i;
+    l_1 = x_1039;
+    h_1 = x_111;
+    let x_1040 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1040;
+    let x_572 : vec2<f32> = vec2<f32>(x_562.y, x_561.y);
+    let x_1041 : i32 = p;
+    p = 0i;
+    p = x_1041;
+    let x_112 : i32 = top;
+    let x_1042 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1042;
+    let x_1043 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1043;
+    let x_573 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+    top = (x_112 - 1i);
+    let x_1044 : i32 = param_5;
+    param_5 = 0i;
+    param_5 = x_1044;
+    let x_574 : vec3<f32> = vec3<f32>(x_570.y, x_565.x, x_570.y);
+    let x_1045 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1045;
+    let x_114 : ptr<function, i32> = &(stack[x_112]);
+    let x_575 : vec2<f32> = vec2<f32>(x_564.y, x_564.z);
+    let x_1046 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1046;
+    let x_115 : i32 = *(x_114);
+    let x_1047 : i32 = p;
+    p = 0i;
+    p = x_1047;
+    let x_576 : vec3<f32> = vec3<f32>(x_573.y, x_573.y, x_565.x);
+    let x_1048 : i32 = param_5;
+    param_5 = 0i;
+    param_5 = x_1048;
+    l_1 = x_115;
+    let x_1049 : i32 = top;
+    top = 0i;
+    top = x_1049;
+    let x_118 : i32 = l_1;
+    param_4 = x_118;
+    let x_1050 : i32 = *(x_110);
+    *(x_110) = 0i;
+    *(x_110) = x_1050;
+    let x_577 : vec2<f32> = vec2<f32>(x_569.y, x_569.z);
+    let x_120 : i32 = h_1;
+    let x_578 : vec2<f32> = vec2<f32>(x_558.x, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+    param_5 = x_120;
+    let x_1051 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1051;
+    let x_121 : i32 = performPartition_i1_i1_(&(param_4), &(param_5));
+    let x_579 : vec2<f32> = vec2<f32>(x_567.x, x_568.x);
+    let x_1052 : i32 = param_5;
+    param_5 = 0i;
+    param_5 = x_1052;
+    p = x_121;
+    let x_1053 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1053;
+    let x_122 : i32 = p;
+    let x_1054 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1054;
+    let x_580 : vec2<f32> = vec2<f32>(x_568.y, x_568.y);
+    let x_1055 : i32 = l_1;
+    l_1 = 0i;
+    l_1 = x_1055;
+    let x_1056 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1056;
+    let x_124 : i32 = l_1;
+    let x_1057 : i32 = *(x_110);
+    *(x_110) = 0i;
+    *(x_110) = x_1057;
+    let x_1058 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1058;
+    let x_582 : vec2<f32> = vec2<f32>(x_567.y, x_573.x);
+    let x_1059 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1059;
+    if (((x_122 - bitcast<i32>(1u)) > x_124)) {
+      let x_1060 : i32 = param_4;
+      param_4 = 0i;
+      param_4 = x_1060;
+      let x_128 : i32 = top;
+      let x_583 : vec2<f32> = vec2<f32>(x_571.y, x_556.y);
+      let x_1061 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1061;
+      let x_1062 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1062;
+      let x_584 : vec2<f32> = vec2<f32>(x_569.z, x_569.y);
+      let x_585 : vec3<f32> = vec3<f32>(x_580.y, x_577.x, x_577.x);
+      let x_130 : i32 = l_1;
+      let x_1063 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1063;
+      let x_586 : vec2<f32> = vec2<f32>(x_564.x, x_585.x);
+      let x_1064 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1064;
+      let x_131 : ptr<function, i32> = &(stack[(1i + x_128)]);
+      let x_1065 : i32 = *(x_110);
+      *(x_110) = 0i;
+      *(x_110) = x_1065;
+      let x_587 : vec3<f32> = vec3<f32>(x_566.y, x_566.y, x_563.x);
+      let x_1066 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1066;
+      *(x_131) = x_130;
+      let x_132 : i32 = top;
+      let x_1067 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1067;
+      let x_588 : vec2<f32> = vec2<f32>(x_575.y, x_575.x);
+      let x_1068 : i32 = *(x_131);
+      *(x_131) = 0i;
+      *(x_131) = x_1068;
+      let x_133 : i32 = bitcast<i32>((1u + bitcast<u32>(x_132)));
+      let x_1069 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1069;
+      let x_589 : vec3<f32> = vec3<f32>(x_576.z, x_588.y, x_576.z);
+      let x_1070 : i32 = h_1;
+      h_1 = 0i;
+      h_1 = x_1070;
+      top = x_133;
+      let x_1071 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1071;
+      let x_134 : i32 = p;
+      let x_590 : vec2<f32> = vec2<f32>(x_576.x, x_573.y);
+      let x_1072 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1072;
+      let x_136 : ptr<function, i32> = &(stack[x_133]);
+      let x_1073 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1073;
+      *(x_136) = (x_134 - bitcast<i32>(1u));
+      let x_1074 : i32 = *(x_96);
+      *(x_96) = 0i;
+      *(x_96) = x_1074;
+      let x_591 : vec2<f32> = vec2<f32>(x_569.z, x_569.y);
+      let x_1075 : i32 = *(x_136);
+      *(x_136) = 0i;
+      *(x_136) = x_1075;
+    }
+    let x_1076 : i32 = *(x_96);
+    *(x_96) = 0i;
+    *(x_96) = x_1076;
+    let x_592 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+    let x_1077 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_1077;
+    let x_137 : i32 = p;
+    let x_1078 : i32 = *(x_114);
+    *(x_114) = 0i;
+    *(x_114) = x_1078;
+    let x_593 : vec3<f32> = vec3<f32>(x_571.z, x_556.x, x_556.y);
+    let x_1079 : i32 = p;
+    p = 0i;
+    p = x_1079;
+    let x_594 : vec3<f32> = vec3<f32>(x_563.z, x_563.x, x_575.x);
+    let x_1080 : i32 = *(x_114);
+    *(x_114) = 0i;
+    *(x_114) = x_1080;
+    let x_139 : i32 = h_1;
+    let x_1081 : i32 = top;
+    top = 0i;
+    top = x_1081;
+    let x_595 : vec3<f32> = vec3<f32>(x_560.z, x_568.x, x_560.x);
+    let x_1082 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1082;
+    let x_1083 : i32 = p;
+    p = 0i;
+    p = x_1083;
+    if ((bitcast<i32>((1u + bitcast<u32>(x_137))) < x_139)) {
+      let x_1084 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1084;
+      let x_596 : vec2<f32> = vec2<f32>(x_592.y, x_582.x);
+      let x_1085 : i32 = l_1;
+      l_1 = 0i;
+      l_1 = x_1085;
+      let x_143 : i32 = top;
+      let x_1086 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1086;
+      let x_597 : vec3<f32> = vec3<f32>(x_562.y, x_560.y, x_560.y);
+      let x_144 : i32 = (x_143 + 1i);
+      let x_1087 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1087;
+      top = x_144;
+      let x_1088 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1088;
+      let x_145 : i32 = p;
+      let x_1089 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1089;
+      let x_599 : vec3<f32> = vec3<f32>(x_560.z, x_560.x, x_568.x);
+      let x_1090 : i32 = p;
+      p = 0i;
+      p = x_1090;
+      let x_600 : vec3<f32> = vec3<f32>(x_556.x, x_580.x, x_580.x);
+      let x_1091 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1091;
+      let x_147 : ptr<function, i32> = &(stack[x_144]);
+      let x_1092 : i32 = *(x_110);
+      *(x_110) = 0i;
+      *(x_110) = x_1092;
+      let x_601 : vec2<f32> = vec2<f32>(x_563.x, x_563.y);
+      *(x_147) = bitcast<i32>((1u + bitcast<u32>(x_145)));
+      let x_1093 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1093;
+      let x_148 : i32 = top;
+      let x_1094 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1094;
+      let x_602 : vec2<f32> = vec2<f32>(x_565.y, x_599.y);
+      let x_1095 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1095;
+      let x_149 : i32 = (x_148 + bitcast<i32>(1u));
+      let x_1096 : i32 = *(x_147);
+      *(x_147) = 0i;
+      *(x_147) = x_1096;
+      top = x_149;
+      let x_1097 : i32 = param_4;
+      param_4 = 0i;
+      param_4 = x_1097;
+      let x_150 : i32 = h_1;
+      let x_1098 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1098;
+      let x_1099 : i32 = *(x_96);
+      *(x_96) = 0i;
+      *(x_96) = x_1099;
+      stack[x_149] = x_150;
+      let x_1100 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1100;
+      let x_603 : vec3<f32> = vec3<f32>(x_568.y, x_564.x, x_564.x);
+      let x_1101 : i32 = l_1;
+      l_1 = 0i;
+      l_1 = x_1101;
+    }
+    let x_1102 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1102;
+
+    continuing {
+      let x_1103 : i32 = l_1;
+      l_1 = 0i;
+      l_1 = x_1103;
+      let x_604 : vec2<f32> = vec2<f32>(x_563.z, x_564.x);
+      let x_1104 : QuicksortObject = obj;
+      obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+      obj = x_1104;
+    }
+  }
+  let x_1105 : i32 = h_1;
+  h_1 = 0i;
+  h_1 = x_1105;
+  return;
+}
+
+fn main_1() {
+  var color : vec3<f32>;
+  var i_2 : i32;
+  var uv : vec2<f32>;
+  let x_717 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_717;
+  i_2 = 0i;
+  let x_721 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_721;
+  if (true) {
+    let x_722 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_722;
+    let x_431 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).x);
+    let x_158 : i32 = i_2;
+    let x_723 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_723;
+    let x_725 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_725;
+    let x_432 : vec2<f32> = vec2<f32>(x_431.y, x_431.y);
+    let x_726 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_726;
+  }
+  let x_756 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_756;
+  let x_446 : vec2<f32> = vec2<f32>(vec2<f32>().x, vec2<f32>().x);
+  let x_757 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_757;
+  quicksort_();
+  let x_758 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_758;
+  let x_184 : vec4<f32> = gl_FragCoord;
+  let x_759 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_759;
+  let x_447 : vec2<f32> = vec2<f32>(vec2<f32>().y, vec2<f32>().y);
+  let x_760 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_760;
+  let x_185 : vec2<f32> = vec2<f32>(x_184.x, x_184.y);
+  let x_448 : vec3<f32> = vec3<f32>(x_185.y, x_446.y, x_446.y);
+  let x_761 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_761;
+  let x_762 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_762;
+  let x_191 : vec2<f32> = x_188.resolution;
+  let x_763 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_763;
+  let x_449 : vec3<f32> = vec3<f32>(x_184.y, vec3<f32>(1.0f, 2.0f, 3.0f).z, x_184.w);
+  let x_764 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_764;
+  let x_192 : vec2<f32> = (x_185 / x_191);
+  let x_765 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_765;
+  let x_450 : vec2<f32> = vec2<f32>(x_447.x, x_185.y);
+  let x_766 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  let x_767 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_767;
+  color = x_766;
+  uv = x_192;
+  color = vec3<f32>(1.0f, 2.0f, 3.0f);
+  let x_768 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_768;
+  let x_451 : vec3<f32> = vec3<f32>(x_185.x, x_185.y, x_446.y);
+  let x_769 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_769;
+  let x_200 : ptr<private, i32> = &(obj.numbers[0u]);
+  let x_770 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_770;
+  let x_201 : i32 = *(x_200);
+  let x_771 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_771;
+  let x_772 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_772;
+  let x_206 : f32 = color.x;
+  let x_773 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_773;
+  let x_452 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_774 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_774;
+  let x_775 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_775;
+  let x_453 : vec3<f32> = vec3<f32>(x_451.x, x_450.x, x_450.y);
+  color.x = (x_206 + f32(x_201));
+  let x_776 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_776;
+  let x_777 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_777;
+  let x_454 : vec2<f32> = vec2<f32>(x_184.y, x_184.y);
+  let x_210 : f32 = uv.x;
+  let x_455 : vec2<f32> = vec2<f32>(x_192.y, x_192.x);
+  let x_778 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_778;
+  let x_779 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_779;
+  if ((x_210 > 0.25f)) {
+    let x_780 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_780;
+    let x_781 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_781;
+    let x_456 : vec3<f32> = vec3<f32>(vec2<f32>().y, x_448.y, x_448.y);
+    let x_782 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_782;
+    let x_216 : i32 = obj.numbers[1i];
+    let x_783 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_783;
+    let x_457 : vec2<f32> = vec2<f32>(x_454.x, x_454.x);
+    let x_784 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_784;
+    let x_785 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_785;
+    let x_458 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec2<f32>().y);
+    let x_786 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_786;
+    let x_219 : f32 = color[0i];
+    let x_787 : f32 = color[0i];
+    color[0i] = 0.0f;
+    color[0i] = x_787;
+    let x_788 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_788;
+    let x_789 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_789;
+    let x_459 : vec3<f32> = vec3<f32>(x_454.y, x_454.y, x_447.y);
+    let x_790 : f32 = color[0i];
+    color[0i] = 0.0f;
+    color[0i] = x_790;
+    color.x = (f32(x_216) + x_219);
+    let x_791 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_791;
+  }
+  let x_792 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_792;
+  let x_793 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_793;
+  let x_223 : f32 = uv.x;
+  let x_794 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_794;
+  let x_460 : vec3<f32> = vec3<f32>(x_453.z, x_453.y, x_453.y);
+  let x_795 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_795;
+  let x_796 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_796;
+  let x_461 : vec2<f32> = vec2<f32>(vec2<f32>().y, vec2<f32>().y);
+  let x_797 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_797;
+  if ((x_223 > 0.5f)) {
+    let x_798 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_798;
+    let x_462 : vec2<f32> = vec2<f32>(x_446.x, x_446.x);
+    let x_799 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_799;
+    let x_229 : ptr<private, i32> = &(obj.numbers[2u]);
+    let x_800 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_800;
+    let x_463 : vec3<f32> = vec3<f32>(x_453.x, x_453.z, x_461.y);
+    let x_801 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_801;
+    let x_230 : i32 = *(x_229);
+    let x_802 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_802;
+    let x_803 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_803;
+    let x_804 : i32 = *(x_229);
+    *(x_229) = 0i;
+    *(x_229) = x_804;
+    let x_464 : vec2<f32> = vec2<f32>(x_450.y, x_191.x);
+    let x_805 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_805;
+    let x_234 : f32 = color.y;
+    let x_806 : i32 = *(x_229);
+    *(x_229) = 0i;
+    *(x_229) = x_806;
+    let x_465 : vec2<f32> = vec2<f32>(x_463.x, x_185.x);
+    let x_807 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_807;
+    let x_808 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_808;
+    let x_466 : vec2<f32> = vec2<f32>(x_455.y, vec2<f32>().y);
+    let x_809 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_809;
+    color.y = (f32(x_230) + x_234);
+    let x_810 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_810;
+  }
+  let x_811 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_811;
+  let x_467 : vec2<f32> = vec2<f32>(x_191.x, x_191.x);
+  let x_812 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_812;
+  let x_238 : f32 = uv[0i];
+  let x_813 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_813;
+  let x_814 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_814;
+  if ((x_238 > 0.75f)) {
+    let x_815 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_815;
+    let x_245 : i32 = obj.numbers[3i];
+    let x_816 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_816;
+    let x_817 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_817;
+    let x_468 : vec3<f32> = vec3<f32>(x_467.x, x_467.x, x_467.x);
+    let x_818 : f32 = uv[0i];
+    uv[0i] = 0.0f;
+    uv[0i] = x_818;
+    let x_819 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_819;
+    let x_249 : f32 = color.z;
+    let x_820 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_820;
+    let x_469 : vec3<f32> = vec3<f32>(x_467.x, x_191.y, x_467.y);
+    let x_821 : f32 = color.z;
+    color.z = 0.0f;
+    color.z = x_821;
+    let x_822 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_822;
+    let x_470 : vec2<f32> = vec2<f32>(vec2<f32>().x, vec2<f32>().y);
+    let x_823 : f32 = color.z;
+    color.z = 0.0f;
+    color.z = x_823;
+    color.z = (x_249 + f32(x_245));
+    let x_824 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_824;
+    let x_471 : vec2<f32> = vec2<f32>(x_470.y, x_470.y);
+  }
+  let x_825 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_825;
+  let x_472 : vec3<f32> = vec3<f32>(x_454.x, x_454.y, x_454.y);
+  let x_253 : ptr<private, i32> = &(obj.numbers[4i]);
+  let x_254 : i32 = *(x_253);
+  let x_826 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_826;
+  let x_827 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_827;
+  let x_473 : vec3<f32> = vec3<f32>(x_446.y, x_453.x, x_453.x);
+  let x_828 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_828;
+  let x_474 : vec2<f32> = vec2<f32>(x_191.x, x_184.z);
+  let x_829 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_829;
+  let x_257 : f32 = color.y;
+  let x_830 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_830;
+  let x_475 : vec2<f32> = vec2<f32>(x_467.x, x_450.x);
+  let x_831 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_831;
+  let x_832 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_832;
+  let x_476 : vec2<f32> = vec2<f32>(x_451.z, x_460.y);
+  color.y = (x_257 + f32(x_254));
+  let x_477 : vec3<f32> = vec3<f32>(vec2<f32>().x, x_472.x, vec2<f32>().y);
+  let x_833 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_833;
+  let x_834 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_834;
+  let x_478 : vec2<f32> = vec2<f32>(x_472.x, x_472.y);
+  let x_835 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_835;
+  let x_261 : f32 = uv.y;
+  let x_836 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_836;
+  let x_479 : vec3<f32> = vec3<f32>(vec2<f32>().y, x_454.y, vec2<f32>().x);
+  let x_837 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_837;
+  let x_838 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_838;
+  let x_480 : vec3<f32> = vec3<f32>(x_446.x, x_446.x, vec2<f32>().y);
+  let x_839 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_839;
+  if ((x_261 > 0.25f)) {
+    let x_481 : vec2<f32> = vec2<f32>(x_447.x, x_480.z);
+    let x_840 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_840;
+    let x_267 : i32 = obj.numbers[5u];
+    let x_841 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_841;
+    let x_842 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_842;
+    let x_843 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_843;
+    let x_270 : f32 = color.x;
+    let x_844 : f32 = uv[0i];
+    uv[0i] = 0.0f;
+    uv[0i] = x_844;
+    let x_482 : vec3<f32> = vec3<f32>(x_455.x, x_475.y, x_455.y);
+    let x_845 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_845;
+    let x_846 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_846;
+    let x_847 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_847;
+    let x_483 : vec3<f32> = vec3<f32>(x_184.w, x_184.w, x_192.x);
+    let x_848 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_848;
+    color.x = (f32(x_267) + x_270);
+    let x_484 : vec3<f32> = vec3<f32>(x_454.y, x_450.x, x_454.y);
+    let x_849 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_849;
+  }
+  let x_850 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_850;
+  let x_485 : vec3<f32> = vec3<f32>(x_467.x, x_450.y, x_450.x);
+  let x_851 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_851;
+  let x_852 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_852;
+  let x_274 : f32 = uv.y;
+  let x_853 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_853;
+  if ((x_274 > 0.5f)) {
+    let x_854 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_854;
+    let x_486 : vec2<f32> = vec2<f32>(x_480.y, x_455.y);
+    let x_279 : ptr<private, i32> = &(obj.numbers[6u]);
+    let x_855 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_855;
+    let x_487 : vec2<f32> = vec2<f32>(x_449.z, x_449.y);
+    let x_856 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_856;
+    let x_280 : i32 = *(x_279);
+    let x_857 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_857;
+    let x_858 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_858;
+    let x_859 : i32 = *(x_253);
+    *(x_253) = 0i;
+    *(x_253) = x_859;
+    let x_488 : vec2<f32> = vec2<f32>(x_473.z, x_473.y);
+    let x_283 : f32 = color.y;
+    let x_860 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_860;
+    let x_861 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_861;
+    let x_489 : vec2<f32> = vec2<f32>(x_475.y, x_475.x);
+    let x_862 : i32 = *(x_279);
+    *(x_279) = 0i;
+    *(x_279) = x_862;
+    let x_863 : i32 = *(x_279);
+    *(x_279) = 0i;
+    *(x_279) = x_863;
+    let x_490 : vec2<f32> = vec2<f32>(x_480.z, x_480.z);
+    let x_864 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_864;
+    color.y = (f32(x_280) + x_283);
+    let x_865 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_865;
+    let x_491 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, x_454.x);
+    let x_866 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_866;
+  }
+  let x_492 : vec2<f32> = vec2<f32>(x_455.y, x_455.y);
+  let x_867 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_867;
+  let x_287 : f32 = uv.y;
+  let x_868 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_868;
+  let x_493 : vec2<f32> = vec2<f32>(x_475.x, x_475.y);
+  let x_869 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_869;
+  let x_870 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_870;
+  let x_494 : vec3<f32> = vec3<f32>(x_191.x, x_191.y, x_191.y);
+  let x_871 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_871;
+  if ((x_287 > 0.75f)) {
+    let x_872 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_872;
+    let x_873 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_873;
+    let x_495 : vec3<f32> = vec3<f32>(x_192.y, x_192.x, x_192.y);
+    let x_874 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_874;
+    let x_293 : i32 = obj.numbers[7i];
+    let x_875 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_875;
+    let x_496 : vec3<f32> = vec3<f32>(x_475.x, x_467.y, x_467.x);
+    let x_876 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_876;
+    let x_497 : vec2<f32> = vec2<f32>(x_477.x, x_461.y);
+    let x_877 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_877;
+    let x_878 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_878;
+    let x_498 : vec3<f32> = vec3<f32>(x_478.x, x_478.y, x_478.x);
+    let x_879 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_879;
+    let x_296 : f32 = color.z;
+    let x_880 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_880;
+    let x_499 : vec2<f32> = vec2<f32>(x_184.x, x_184.y);
+    let x_881 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_881;
+    let x_882 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_882;
+    let x_883 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_883;
+    let x_500 : vec3<f32> = vec3<f32>(x_499.y, x_499.y, x_494.z);
+    let x_884 : f32 = color.z;
+    color.z = 0.0f;
+    color.z = x_884;
+    color.z = (f32(x_293) + x_296);
+    let x_885 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_885;
+    let x_501 : vec2<f32> = vec2<f32>(x_453.x, x_453.z);
+    let x_886 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_886;
+  }
+  let x_887 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_887;
+  let x_502 : vec2<f32> = vec2<f32>(x_451.y, x_192.y);
+  let x_888 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_888;
+  let x_300 : ptr<private, i32> = &(obj.numbers[8i]);
+  let x_301 : i32 = *(x_300);
+  let x_889 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_889;
+  let x_503 : vec2<f32> = vec2<f32>(x_185.x, x_451.z);
+  let x_890 : i32 = *(x_300);
+  *(x_300) = 0i;
+  *(x_300) = x_890;
+  let x_891 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_891;
+  let x_504 : vec2<f32> = vec2<f32>(x_453.y, vec2<f32>().x);
+  let x_892 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_892;
+  let x_505 : vec3<f32> = vec3<f32>(x_504.x, x_504.y, x_504.x);
+  let x_893 : f32 = color.z;
+  color.z = 0.0f;
+  color.z = x_893;
+  let x_304 : f32 = color.z;
+  let x_894 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_894;
+  let x_506 : vec2<f32> = vec2<f32>(x_493.x, x_492.x);
+  let x_895 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_895;
+  let x_896 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_896;
+  let x_507 : vec2<f32> = vec2<f32>(x_461.x, x_447.x);
+  let x_897 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_897;
+  color.z = (x_304 + f32(x_301));
+  let x_898 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_898;
+  let x_899 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_899;
+  let x_508 : vec3<f32> = vec3<f32>(x_461.y, x_461.x, x_506.y);
+  let x_900 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_900;
+  let x_308 : f32 = uv.x;
+  let x_901 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_901;
+  let x_509 : vec3<f32> = vec3<f32>(x_503.y, x_503.x, x_448.z);
+  let x_902 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_902;
+  let x_310 : f32 = uv.y;
+  let x_903 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_903;
+  let x_904 : f32 = color.z;
+  color.z = 0.0f;
+  color.z = x_904;
+  let x_510 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, x_485.y, x_485.z);
+  let x_905 : f32 = color.z;
+  color.z = 0.0f;
+  color.z = x_905;
+  let x_906 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_906;
+  let x_511 : vec2<f32> = vec2<f32>(x_485.z, x_485.y);
+  let x_907 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_907;
+  let x_908 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_908;
+  let x_512 : vec3<f32> = vec3<f32>(x_455.y, x_455.y, x_455.y);
+  let x_909 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_909;
+  if ((abs((x_308 - x_310)) < 0.25f)) {
+    let x_910 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_910;
+    let x_911 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_911;
+    let x_513 : vec3<f32> = vec3<f32>(x_505.z, x_505.x, x_448.x);
+    let x_912 : i32 = *(x_300);
+    *(x_300) = 0i;
+    *(x_300) = x_912;
+    let x_317 : i32 = obj.numbers[9u];
+    let x_514 : vec3<f32> = vec3<f32>(x_474.y, x_474.y, x_474.y);
+    let x_913 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_913;
+    let x_320 : f32 = color.x;
+    let x_914 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_914;
+    let x_515 : vec2<f32> = vec2<f32>(x_502.x, x_502.y);
+    let x_915 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_915;
+    let x_916 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_916;
+    let x_516 : vec2<f32> = vec2<f32>(x_452.x, x_452.x);
+    let x_917 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_917;
+    let x_918 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_918;
+    let x_517 : vec3<f32> = vec3<f32>(vec2<f32>().x, vec2<f32>().x, vec2<f32>().y);
+    color.x = (f32(x_317) + x_320);
+    let x_919 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_919;
+    let x_518 : vec3<f32> = vec3<f32>(x_480.y, x_508.x, x_480.x);
+    let x_920 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_920;
+  }
+  let x_921 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_921;
+  let x_325 : vec3<f32> = color;
+  let x_922 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_922;
+  let x_519 : vec3<f32> = vec3<f32>(x_447.x, x_446.x, x_446.y);
+  let x_326 : vec3<f32> = normalize(x_325);
+  let x_923 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_923;
+  let x_924 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_924;
+  let x_925 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_925;
+  let x_926 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_926;
+  let x_520 : vec2<f32> = vec2<f32>(x_506.y, x_519.y);
+  let x_927 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_927;
+  let x_330 : vec4<f32> = vec4<f32>(x_326.x, x_326.y, x_326.z, 1.0f);
+  let x_928 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_928;
+  let x_521 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).y, x_520.y);
+  let x_929 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_929;
+  x_GLF_color = x_330;
+  let x_930 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_930;
+  let x_522 : vec3<f32> = vec3<f32>(x_330.w, x_330.y, x_493.x);
+  let x_931 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_931;
+  return;
+}
+
+struct main_out {
+  @location(0)
+  x_GLF_color_1 : vec4<f32>,
+}
+
+@fragment
+fn main(@builtin(position) gl_FragCoord_param : vec4<f32>) -> main_out {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  return main_out(x_GLF_color);
+}
+
+error: function-scope 'var' must have a constructible type
diff --git a/test/tint/bug/tint/749.spvasm.expected.fxc.hlsl b/test/tint/bug/tint/749.spvasm.expected.fxc.hlsl
index 149037e..2c170a6 100644
--- a/test/tint/bug/tint/749.spvasm.expected.fxc.hlsl
+++ b/test/tint/bug/tint/749.spvasm.expected.fxc.hlsl
@@ -1 +1,1495 @@
-SKIP: triggers crbug.com/tint/98
+SKIP: FAILED
+
+
+struct QuicksortObject {
+  numbers : array<i32, 10u>,
+}
+
+struct buf0 {
+  /* @offset(0) */
+  resolution : vec2<f32>,
+}
+
+var<private> obj : QuicksortObject;
+
+var<private> gl_FragCoord : vec4<f32>;
+
+@group(0) @binding(0) var<uniform> x_188 : buf0;
+
+var<private> x_GLF_color : vec4<f32>;
+
+fn swap_i1_i1_(i : ptr<function, i32>, j : ptr<function, i32>) {
+  var temp : i32;
+  let x_932 : i32 = temp;
+  temp = 0i;
+  temp = x_932;
+  let x_523 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+  let x_933 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_933;
+  let x_28 : i32 = *(i);
+  let x_934 : i32 = *(j);
+  *(j) = 0i;
+  *(j) = x_934;
+  let x_524 : vec3<f32> = vec3<f32>(x_523.y, x_523.x, x_523.y);
+  let x_935 : i32 = temp;
+  temp = 0i;
+  temp = x_935;
+  let x_30 : ptr<private, i32> = &(obj.numbers[x_28]);
+  let x_936 : i32 = *(x_30);
+  *(x_30) = 0i;
+  *(x_30) = x_936;
+  let x_31 : i32 = *(x_30);
+  let x_937 : i32 = temp;
+  temp = 0i;
+  temp = x_937;
+  temp = x_31;
+  let x_938 : i32 = *(j);
+  *(j) = 0i;
+  *(j) = x_938;
+  let x_525 : vec3<f32> = vec3<f32>(x_523.z, vec3<f32>(1.0f, 2.0f, 3.0f).x, x_523.y);
+  let x_939 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_939;
+  let x_32 : i32 = *(i);
+  let x_940 : i32 = *(x_30);
+  *(x_30) = 0i;
+  *(x_30) = x_940;
+  let x_33 : i32 = *(j);
+  let x_941 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_941;
+  let x_526 : vec3<f32> = vec3<f32>(x_525.x, x_525.z, x_525.z);
+  let x_942 : i32 = *(x_30);
+  *(x_30) = 0i;
+  *(x_30) = x_942;
+  let x_34 : ptr<private, i32> = &(obj.numbers[x_33]);
+  let x_35 : i32 = *(x_34);
+  let x_943 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_943;
+  let x_527 : vec2<f32> = vec2<f32>(x_526.x, x_526.x);
+  let x_36 : ptr<private, i32> = &(obj.numbers[x_32]);
+  let x_528 : vec3<f32> = vec3<f32>(x_524.x, x_524.z, x_524.x);
+  *(x_36) = x_35;
+  let x_944 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_944;
+  let x_529 : vec3<f32> = vec3<f32>(x_526.y, x_526.z, x_526.x);
+  let x_945 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_945;
+  let x_37 : i32 = *(j);
+  let x_946 : i32 = temp;
+  temp = 0i;
+  temp = x_946;
+  let x_530 : vec2<f32> = vec2<f32>(x_529.z, x_529.y);
+  let x_947 : i32 = *(x_34);
+  *(x_34) = 0i;
+  *(x_34) = x_947;
+  let x_38 : i32 = temp;
+  let x_948 : i32 = *(j);
+  *(j) = 0i;
+  *(j) = x_948;
+  let x_531 : vec3<f32> = vec3<f32>(x_527.x, x_526.y, x_526.x);
+  let x_949 : i32 = *(x_36);
+  *(x_36) = 0i;
+  *(x_36) = x_949;
+  let x_950 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_950;
+  let x_532 : vec3<f32> = vec3<f32>(x_528.x, x_528.y, x_528.x);
+  let x_951 : i32 = *(x_34);
+  *(x_34) = 0i;
+  *(x_34) = x_951;
+  obj.numbers[x_37] = x_38;
+  return;
+}
+
+fn performPartition_i1_i1_(l : ptr<function, i32>, h : ptr<function, i32>) -> i32 {
+  var param_3 : i32;
+  var i_1 : i32;
+  var j_1 : i32;
+  var param_2 : i32;
+  var param_1 : i32;
+  var param : i32;
+  var pivot : i32;
+  var x_537 : vec2<f32>;
+  var x_538 : vec3<f32>;
+  let x_952 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_952;
+  let x_41 : i32 = *(h);
+  let x_953 : i32 = *(l);
+  *(l) = 0i;
+  *(l) = x_953;
+  let x_42 : ptr<private, i32> = &(obj.numbers[x_41]);
+  let x_954 : i32 = *(x_42);
+  *(x_42) = 0i;
+  *(x_42) = x_954;
+  let x_43 : i32 = *(x_42);
+  let x_955 : i32 = param_3;
+  param_3 = 0i;
+  param_3 = x_955;
+  let x_534 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+  let x_956 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_956;
+  pivot = x_43;
+  let x_45 : i32 = *(l);
+  let x_957 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_957;
+  let x_958 : i32 = j_1;
+  j_1 = 0i;
+  j_1 = x_958;
+  let x_535 : vec3<f32> = vec3<f32>(x_534.y, x_534.z, x_534.y);
+  let x_959 : i32 = *(l);
+  *(l) = 0i;
+  *(l) = x_959;
+  i_1 = (x_45 - bitcast<i32>(1u));
+  let x_49 : i32 = *(l);
+  let x_536 : vec3<f32> = vec3<f32>(x_534.x, x_534.z, x_535.x);
+  j_1 = 10i;
+  let x_960 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_960;
+  loop {
+    var x_61 : ptr<private, i32>;
+    var x_539 : vec3<f32>;
+    var x_541 : vec3<f32>;
+    let x_961 : i32 = pivot;
+    pivot = 0i;
+    pivot = x_961;
+    let x_962 : i32 = param_1;
+    param_1 = 0i;
+    param_1 = x_962;
+    let x_55 : i32 = j_1;
+    let x_963 : i32 = pivot;
+    pivot = 0i;
+    pivot = x_963;
+    x_537 = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+    let x_964 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_964;
+    let x_56 : i32 = *(h);
+    let x_965 : i32 = *(h);
+    *(h) = 0i;
+    *(h) = x_965;
+    let x_966 : i32 = param;
+    param = 0i;
+    param = x_966;
+    let x_967 : i32 = j_1;
+    j_1 = 0i;
+    j_1 = x_967;
+    x_538 = vec3<f32>(x_534.x, x_537.y, x_534.z);
+    let x_968 : i32 = param;
+    param = 0i;
+    param = x_968;
+    if ((x_55 <= (x_56 - bitcast<i32>(1u)))) {
+    } else {
+      break;
+    }
+    let x_60 : i32 = j_1;
+    let x_969 : i32 = *(x_42);
+    *(x_42) = 0i;
+    *(x_42) = x_969;
+    x_61 = obj.numbers[x_60];
+    let x_970 : i32 = *(h);
+    *(h) = 0i;
+    *(h) = x_970;
+    x_539 = vec3<f32>(x_537.x, x_535.z, x_537.x);
+    let x_971 : i32 = param_1;
+    param_1 = 0i;
+    param_1 = x_971;
+    let x_62 : ptr<undefined, i32> = x_61;
+    let x_972 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_972;
+    let x_63 : i32 = pivot;
+    let x_540 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, x_534.z);
+    let x_973 : i32 = i_1;
+    i_1 = 0i;
+    i_1 = x_973;
+    let x_974 : i32 = *(l);
+    *(l) = 0i;
+    *(l) = x_974;
+    x_541 = vec3<f32>(x_534.y, x_534.x, x_534.y);
+    let x_975 : i32 = pivot;
+    pivot = 0i;
+    pivot = x_975;
+    if ((x_62 <= x_63)) {
+      let x_542 : vec3<f32> = vec3<f32>(x_541.z, x_541.x, x_541.x);
+      let x_976 : i32 = param_3;
+      param_3 = 0i;
+      param_3 = x_976;
+      let x_67 : i32 = i_1;
+      let x_977 : i32 = pivot;
+      pivot = 0i;
+      pivot = x_977;
+      let x_543 : vec2<f32> = vec2<f32>(x_539.x, x_541.y);
+      let x_978 : i32 = i_1;
+      i_1 = 0i;
+      i_1 = x_978;
+      let x_979 : i32 = param;
+      param = 0i;
+      param = x_979;
+      i_1 = (x_67 + bitcast<i32>(1u));
+      let x_980 : i32 = *(l);
+      *(l) = 0i;
+      *(l) = x_980;
+      let x_544 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).y, x_540.x);
+      let x_70 : i32 = i_1;
+      let x_545 : vec2<f32> = vec2<f32>(x_537.y, x_538.x);
+      let x_981 : i32 = param;
+      param = 0i;
+      param = x_981;
+      param = x_70;
+      let x_982 : i32 = param;
+      param = 0i;
+      param = x_982;
+      let x_546 : vec2<f32> = vec2<f32>(x_545.x, x_545.x);
+      let x_983 : i32 = i_1;
+      i_1 = 0i;
+      i_1 = x_983;
+      let x_72 : i32 = j_1;
+      param_1 = x_72;
+      let x_984 : i32 = param_3;
+      param_3 = 0i;
+      param_3 = x_984;
+      swap_i1_i1_(&(param), &(param_1));
+      let x_985 : i32 = param_1;
+      param_1 = 0i;
+      param_1 = x_985;
+    }
+    let x_986 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_986;
+
+    continuing {
+      let x_987 : i32 = *(h);
+      *(h) = 0i;
+      *(h) = x_987;
+      let x_74 : i32 = j_1;
+      let x_988 : i32 = *(h);
+      *(h) = 0i;
+      *(h) = x_988;
+      let x_547 : vec3<f32> = vec3<f32>(x_539.x, x_541.z, x_541.z);
+      let x_989 : ptr<undefined, i32> = x_61;
+      x_61 = 0i;
+      x_61 = x_989;
+      let x_990 : i32 = param;
+      param = 0i;
+      param = x_990;
+      j_1 = (1i + x_74);
+      let x_991 : i32 = param_1;
+      param_1 = 0i;
+      param_1 = x_991;
+      let x_548 : vec3<f32> = vec3<f32>(x_541.y, x_541.z, x_541.x);
+      let x_992 : ptr<undefined, i32> = x_61;
+      x_61 = 0i;
+      x_61 = x_992;
+    }
+  }
+  let x_76 : i32 = i_1;
+  let x_993 : i32 = *(x_42);
+  *(x_42) = 0i;
+  *(x_42) = x_993;
+  let x_549 : vec2<f32> = vec2<f32>(x_534.x, x_534.y);
+  let x_994 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_994;
+  let x_995 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_995;
+  i_1 = (1i + x_76);
+  let x_996 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_996;
+  let x_79 : i32 = i_1;
+  let x_997 : i32 = j_1;
+  j_1 = 0i;
+  j_1 = x_997;
+  let x_550 : vec2<f32> = vec2<f32>(x_534.x, x_534.x);
+  let x_998 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_998;
+  param_2 = x_79;
+  let x_551 : vec2<f32> = vec2<f32>(x_534.y, x_536.x);
+  let x_999 : i32 = pivot;
+  pivot = 0i;
+  pivot = x_999;
+  let x_81 : i32 = *(h);
+  let x_552 : vec2<f32> = vec2<f32>(x_550.x, x_549.y);
+  let x_1000 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_1000;
+  param_3 = x_81;
+  let x_1001 : i32 = i_1;
+  i_1 = 0i;
+  i_1 = x_1001;
+  let x_553 : vec2<f32> = vec2<f32>(x_549.y, x_552.x);
+  let x_1002 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_1002;
+  swap_i1_i1_(&(param_2), &(param_3));
+  let x_1003 : i32 = *(l);
+  *(l) = 0i;
+  *(l) = x_1003;
+  let x_554 : vec2<f32> = vec2<f32>(x_536.z, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_1004 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_1004;
+  let x_83 : i32 = i_1;
+  let x_1005 : i32 = param;
+  param = 0i;
+  param = x_1005;
+  let x_555 : vec2<f32> = vec2<f32>(x_534.y, x_534.x);
+  let x_1006 : i32 = j_1;
+  j_1 = 0i;
+  j_1 = x_1006;
+  return x_83;
+}
+
+fn quicksort_() {
+  var param_4 : i32;
+  var h_1 : i32;
+  var p : i32;
+  var l_1 : i32;
+  var top : i32;
+  var stack : array<i32, 10u>;
+  var param_5 : i32;
+  l_1 = 0i;
+  let x_1007 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1007;
+  h_1 = 9i;
+  let x_1008 : array<i32, 10u> = stack;
+  stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+  stack = x_1008;
+  let x_556 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_1009 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1009;
+  top = -1i;
+  let x_1010 : i32 = p;
+  p = 0i;
+  p = x_1010;
+  let x_93 : i32 = top;
+  let x_557 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).x);
+  let x_1011 : i32 = p;
+  p = 0i;
+  p = x_1011;
+  let x_94 : i32 = (x_93 + bitcast<i32>(1u));
+  let x_1012 : i32 = top;
+  top = 0i;
+  top = x_1012;
+  let x_558 : vec2<f32> = vec2<f32>(x_556.y, x_557.y);
+  let x_1013 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1013;
+  top = x_94;
+  let x_1014 : i32 = h_1;
+  h_1 = 0i;
+  h_1 = x_1014;
+  let x_559 : vec3<f32> = vec3<f32>(x_557.y, x_557.x, x_557.x);
+  let x_1015 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1015;
+  let x_95 : i32 = l_1;
+  let x_1016 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_1016;
+  let x_560 : vec3<f32> = vec3<f32>(x_559.y, x_559.x, x_557.x);
+  let x_96 : ptr<function, i32> = &(stack[x_94]);
+  let x_1017 : array<i32, 10u> = stack;
+  stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+  stack = x_1017;
+  let x_561 : vec3<f32> = vec3<f32>(x_556.y, x_556.y, x_556.y);
+  let x_1018 : i32 = l_1;
+  l_1 = 0i;
+  l_1 = 0i;
+  *(x_96) = x_95;
+  let x_1019 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1019;
+  let x_97 : i32 = top;
+  let x_1020 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1020;
+  let x_562 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, x_558.y, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_1021 : i32 = *(x_96);
+  *(x_96) = 0i;
+  *(x_96) = x_1021;
+  let x_98 : i32 = (x_97 + 1i);
+  let x_1022 : i32 = *(x_96);
+  *(x_96) = 0i;
+  *(x_96) = x_1022;
+  let x_563 : vec3<f32> = vec3<f32>(x_559.x, x_559.z, x_556.y);
+  top = x_98;
+  let x_1023 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1023;
+  let x_99 : i32 = h_1;
+  let x_1024 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1024;
+  let x_564 : vec3<f32> = vec3<f32>(x_558.x, x_561.x, x_558.y);
+  let x_1025 : i32 = l_1;
+  l_1 = 0i;
+  l_1 = x_1025;
+  let x_100 : ptr<function, i32> = &(stack[x_98]);
+  let x_1026 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1026;
+  let x_565 : vec2<f32> = vec2<f32>(x_564.z, x_564.z);
+  let x_1027 : i32 = p;
+  p = 0i;
+  p = x_1027;
+  *(x_100) = x_99;
+  loop {
+    let x_566 : vec3<f32> = vec3<f32>(x_563.x, x_563.x, x_563.x);
+    let x_1028 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1028;
+    let x_1029 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1029;
+    let x_106 : i32 = top;
+    let x_1030 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1030;
+    let x_567 : vec2<f32> = vec2<f32>(x_558.x, x_564.z);
+    let x_1031 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1031;
+    if ((x_106 >= bitcast<i32>(0u))) {
+    } else {
+      break;
+    }
+    let x_1032 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_1032;
+    let x_568 : vec3<f32> = vec3<f32>(x_559.y, x_559.x, x_563.y);
+    let x_1033 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1033;
+    let x_108 : i32 = top;
+    let x_569 : vec3<f32> = vec3<f32>(x_565.x, x_567.y, x_565.x);
+    let x_1034 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1034;
+    let x_570 : vec2<f32> = vec2<f32>(x_556.x, x_556.x);
+    let x_1035 : i32 = p;
+    p = 0i;
+    p = x_1035;
+    top = (x_108 - bitcast<i32>(1u));
+    let x_1036 : i32 = p;
+    p = 0i;
+    p = x_1036;
+    let x_110 : ptr<function, i32> = &(stack[x_108]);
+    let x_1037 : i32 = *(x_96);
+    *(x_96) = 0i;
+    *(x_96) = x_1037;
+    let x_111 : i32 = *(x_110);
+    let x_1038 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1038;
+    let x_571 : vec3<f32> = vec3<f32>(x_559.y, x_559.x, x_564.y);
+    let x_1039 : i32 = l_1;
+    l_1 = 0i;
+    l_1 = x_1039;
+    h_1 = x_111;
+    let x_1040 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1040;
+    let x_572 : vec2<f32> = vec2<f32>(x_562.y, x_561.y);
+    let x_1041 : i32 = p;
+    p = 0i;
+    p = x_1041;
+    let x_112 : i32 = top;
+    let x_1042 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1042;
+    let x_1043 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1043;
+    let x_573 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+    top = (x_112 - 1i);
+    let x_1044 : i32 = param_5;
+    param_5 = 0i;
+    param_5 = x_1044;
+    let x_574 : vec3<f32> = vec3<f32>(x_570.y, x_565.x, x_570.y);
+    let x_1045 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1045;
+    let x_114 : ptr<function, i32> = &(stack[x_112]);
+    let x_575 : vec2<f32> = vec2<f32>(x_564.y, x_564.z);
+    let x_1046 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1046;
+    let x_115 : i32 = *(x_114);
+    let x_1047 : i32 = p;
+    p = 0i;
+    p = x_1047;
+    let x_576 : vec3<f32> = vec3<f32>(x_573.y, x_573.y, x_565.x);
+    let x_1048 : i32 = param_5;
+    param_5 = 0i;
+    param_5 = x_1048;
+    l_1 = x_115;
+    let x_1049 : i32 = top;
+    top = 0i;
+    top = x_1049;
+    let x_118 : i32 = l_1;
+    param_4 = x_118;
+    let x_1050 : i32 = *(x_110);
+    *(x_110) = 0i;
+    *(x_110) = x_1050;
+    let x_577 : vec2<f32> = vec2<f32>(x_569.y, x_569.z);
+    let x_120 : i32 = h_1;
+    let x_578 : vec2<f32> = vec2<f32>(x_558.x, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+    param_5 = x_120;
+    let x_1051 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1051;
+    let x_121 : i32 = performPartition_i1_i1_(&(param_4), &(param_5));
+    let x_579 : vec2<f32> = vec2<f32>(x_567.x, x_568.x);
+    let x_1052 : i32 = param_5;
+    param_5 = 0i;
+    param_5 = x_1052;
+    p = x_121;
+    let x_1053 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1053;
+    let x_122 : i32 = p;
+    let x_1054 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1054;
+    let x_580 : vec2<f32> = vec2<f32>(x_568.y, x_568.y);
+    let x_1055 : i32 = l_1;
+    l_1 = 0i;
+    l_1 = x_1055;
+    let x_1056 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1056;
+    let x_124 : i32 = l_1;
+    let x_1057 : i32 = *(x_110);
+    *(x_110) = 0i;
+    *(x_110) = x_1057;
+    let x_1058 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1058;
+    let x_582 : vec2<f32> = vec2<f32>(x_567.y, x_573.x);
+    let x_1059 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1059;
+    if (((x_122 - bitcast<i32>(1u)) > x_124)) {
+      let x_1060 : i32 = param_4;
+      param_4 = 0i;
+      param_4 = x_1060;
+      let x_128 : i32 = top;
+      let x_583 : vec2<f32> = vec2<f32>(x_571.y, x_556.y);
+      let x_1061 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1061;
+      let x_1062 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1062;
+      let x_584 : vec2<f32> = vec2<f32>(x_569.z, x_569.y);
+      let x_585 : vec3<f32> = vec3<f32>(x_580.y, x_577.x, x_577.x);
+      let x_130 : i32 = l_1;
+      let x_1063 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1063;
+      let x_586 : vec2<f32> = vec2<f32>(x_564.x, x_585.x);
+      let x_1064 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1064;
+      let x_131 : ptr<function, i32> = &(stack[(1i + x_128)]);
+      let x_1065 : i32 = *(x_110);
+      *(x_110) = 0i;
+      *(x_110) = x_1065;
+      let x_587 : vec3<f32> = vec3<f32>(x_566.y, x_566.y, x_563.x);
+      let x_1066 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1066;
+      *(x_131) = x_130;
+      let x_132 : i32 = top;
+      let x_1067 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1067;
+      let x_588 : vec2<f32> = vec2<f32>(x_575.y, x_575.x);
+      let x_1068 : i32 = *(x_131);
+      *(x_131) = 0i;
+      *(x_131) = x_1068;
+      let x_133 : i32 = bitcast<i32>((1u + bitcast<u32>(x_132)));
+      let x_1069 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1069;
+      let x_589 : vec3<f32> = vec3<f32>(x_576.z, x_588.y, x_576.z);
+      let x_1070 : i32 = h_1;
+      h_1 = 0i;
+      h_1 = x_1070;
+      top = x_133;
+      let x_1071 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1071;
+      let x_134 : i32 = p;
+      let x_590 : vec2<f32> = vec2<f32>(x_576.x, x_573.y);
+      let x_1072 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1072;
+      let x_136 : ptr<function, i32> = &(stack[x_133]);
+      let x_1073 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1073;
+      *(x_136) = (x_134 - bitcast<i32>(1u));
+      let x_1074 : i32 = *(x_96);
+      *(x_96) = 0i;
+      *(x_96) = x_1074;
+      let x_591 : vec2<f32> = vec2<f32>(x_569.z, x_569.y);
+      let x_1075 : i32 = *(x_136);
+      *(x_136) = 0i;
+      *(x_136) = x_1075;
+    }
+    let x_1076 : i32 = *(x_96);
+    *(x_96) = 0i;
+    *(x_96) = x_1076;
+    let x_592 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+    let x_1077 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_1077;
+    let x_137 : i32 = p;
+    let x_1078 : i32 = *(x_114);
+    *(x_114) = 0i;
+    *(x_114) = x_1078;
+    let x_593 : vec3<f32> = vec3<f32>(x_571.z, x_556.x, x_556.y);
+    let x_1079 : i32 = p;
+    p = 0i;
+    p = x_1079;
+    let x_594 : vec3<f32> = vec3<f32>(x_563.z, x_563.x, x_575.x);
+    let x_1080 : i32 = *(x_114);
+    *(x_114) = 0i;
+    *(x_114) = x_1080;
+    let x_139 : i32 = h_1;
+    let x_1081 : i32 = top;
+    top = 0i;
+    top = x_1081;
+    let x_595 : vec3<f32> = vec3<f32>(x_560.z, x_568.x, x_560.x);
+    let x_1082 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1082;
+    let x_1083 : i32 = p;
+    p = 0i;
+    p = x_1083;
+    if ((bitcast<i32>((1u + bitcast<u32>(x_137))) < x_139)) {
+      let x_1084 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1084;
+      let x_596 : vec2<f32> = vec2<f32>(x_592.y, x_582.x);
+      let x_1085 : i32 = l_1;
+      l_1 = 0i;
+      l_1 = x_1085;
+      let x_143 : i32 = top;
+      let x_1086 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1086;
+      let x_597 : vec3<f32> = vec3<f32>(x_562.y, x_560.y, x_560.y);
+      let x_144 : i32 = (x_143 + 1i);
+      let x_1087 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1087;
+      top = x_144;
+      let x_1088 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1088;
+      let x_145 : i32 = p;
+      let x_1089 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1089;
+      let x_599 : vec3<f32> = vec3<f32>(x_560.z, x_560.x, x_568.x);
+      let x_1090 : i32 = p;
+      p = 0i;
+      p = x_1090;
+      let x_600 : vec3<f32> = vec3<f32>(x_556.x, x_580.x, x_580.x);
+      let x_1091 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1091;
+      let x_147 : ptr<function, i32> = &(stack[x_144]);
+      let x_1092 : i32 = *(x_110);
+      *(x_110) = 0i;
+      *(x_110) = x_1092;
+      let x_601 : vec2<f32> = vec2<f32>(x_563.x, x_563.y);
+      *(x_147) = bitcast<i32>((1u + bitcast<u32>(x_145)));
+      let x_1093 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1093;
+      let x_148 : i32 = top;
+      let x_1094 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1094;
+      let x_602 : vec2<f32> = vec2<f32>(x_565.y, x_599.y);
+      let x_1095 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1095;
+      let x_149 : i32 = (x_148 + bitcast<i32>(1u));
+      let x_1096 : i32 = *(x_147);
+      *(x_147) = 0i;
+      *(x_147) = x_1096;
+      top = x_149;
+      let x_1097 : i32 = param_4;
+      param_4 = 0i;
+      param_4 = x_1097;
+      let x_150 : i32 = h_1;
+      let x_1098 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1098;
+      let x_1099 : i32 = *(x_96);
+      *(x_96) = 0i;
+      *(x_96) = x_1099;
+      stack[x_149] = x_150;
+      let x_1100 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1100;
+      let x_603 : vec3<f32> = vec3<f32>(x_568.y, x_564.x, x_564.x);
+      let x_1101 : i32 = l_1;
+      l_1 = 0i;
+      l_1 = x_1101;
+    }
+    let x_1102 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1102;
+
+    continuing {
+      let x_1103 : i32 = l_1;
+      l_1 = 0i;
+      l_1 = x_1103;
+      let x_604 : vec2<f32> = vec2<f32>(x_563.z, x_564.x);
+      let x_1104 : QuicksortObject = obj;
+      obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+      obj = x_1104;
+    }
+  }
+  let x_1105 : i32 = h_1;
+  h_1 = 0i;
+  h_1 = x_1105;
+  return;
+}
+
+fn main_1() {
+  var color : vec3<f32>;
+  var i_2 : i32;
+  var uv : vec2<f32>;
+  let x_717 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_717;
+  i_2 = 0i;
+  let x_721 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_721;
+  if (true) {
+    let x_722 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_722;
+    let x_431 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).x);
+    let x_158 : i32 = i_2;
+    let x_723 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_723;
+    let x_725 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_725;
+    let x_432 : vec2<f32> = vec2<f32>(x_431.y, x_431.y);
+    let x_726 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_726;
+  }
+  let x_756 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_756;
+  let x_446 : vec2<f32> = vec2<f32>(vec2<f32>().x, vec2<f32>().x);
+  let x_757 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_757;
+  quicksort_();
+  let x_758 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_758;
+  let x_184 : vec4<f32> = gl_FragCoord;
+  let x_759 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_759;
+  let x_447 : vec2<f32> = vec2<f32>(vec2<f32>().y, vec2<f32>().y);
+  let x_760 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_760;
+  let x_185 : vec2<f32> = vec2<f32>(x_184.x, x_184.y);
+  let x_448 : vec3<f32> = vec3<f32>(x_185.y, x_446.y, x_446.y);
+  let x_761 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_761;
+  let x_762 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_762;
+  let x_191 : vec2<f32> = x_188.resolution;
+  let x_763 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_763;
+  let x_449 : vec3<f32> = vec3<f32>(x_184.y, vec3<f32>(1.0f, 2.0f, 3.0f).z, x_184.w);
+  let x_764 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_764;
+  let x_192 : vec2<f32> = (x_185 / x_191);
+  let x_765 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_765;
+  let x_450 : vec2<f32> = vec2<f32>(x_447.x, x_185.y);
+  let x_766 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  let x_767 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_767;
+  color = x_766;
+  uv = x_192;
+  color = vec3<f32>(1.0f, 2.0f, 3.0f);
+  let x_768 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_768;
+  let x_451 : vec3<f32> = vec3<f32>(x_185.x, x_185.y, x_446.y);
+  let x_769 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_769;
+  let x_200 : ptr<private, i32> = &(obj.numbers[0u]);
+  let x_770 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_770;
+  let x_201 : i32 = *(x_200);
+  let x_771 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_771;
+  let x_772 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_772;
+  let x_206 : f32 = color.x;
+  let x_773 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_773;
+  let x_452 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_774 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_774;
+  let x_775 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_775;
+  let x_453 : vec3<f32> = vec3<f32>(x_451.x, x_450.x, x_450.y);
+  color.x = (x_206 + f32(x_201));
+  let x_776 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_776;
+  let x_777 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_777;
+  let x_454 : vec2<f32> = vec2<f32>(x_184.y, x_184.y);
+  let x_210 : f32 = uv.x;
+  let x_455 : vec2<f32> = vec2<f32>(x_192.y, x_192.x);
+  let x_778 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_778;
+  let x_779 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_779;
+  if ((x_210 > 0.25f)) {
+    let x_780 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_780;
+    let x_781 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_781;
+    let x_456 : vec3<f32> = vec3<f32>(vec2<f32>().y, x_448.y, x_448.y);
+    let x_782 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_782;
+    let x_216 : i32 = obj.numbers[1i];
+    let x_783 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_783;
+    let x_457 : vec2<f32> = vec2<f32>(x_454.x, x_454.x);
+    let x_784 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_784;
+    let x_785 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_785;
+    let x_458 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec2<f32>().y);
+    let x_786 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_786;
+    let x_219 : f32 = color[0i];
+    let x_787 : f32 = color[0i];
+    color[0i] = 0.0f;
+    color[0i] = x_787;
+    let x_788 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_788;
+    let x_789 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_789;
+    let x_459 : vec3<f32> = vec3<f32>(x_454.y, x_454.y, x_447.y);
+    let x_790 : f32 = color[0i];
+    color[0i] = 0.0f;
+    color[0i] = x_790;
+    color.x = (f32(x_216) + x_219);
+    let x_791 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_791;
+  }
+  let x_792 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_792;
+  let x_793 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_793;
+  let x_223 : f32 = uv.x;
+  let x_794 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_794;
+  let x_460 : vec3<f32> = vec3<f32>(x_453.z, x_453.y, x_453.y);
+  let x_795 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_795;
+  let x_796 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_796;
+  let x_461 : vec2<f32> = vec2<f32>(vec2<f32>().y, vec2<f32>().y);
+  let x_797 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_797;
+  if ((x_223 > 0.5f)) {
+    let x_798 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_798;
+    let x_462 : vec2<f32> = vec2<f32>(x_446.x, x_446.x);
+    let x_799 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_799;
+    let x_229 : ptr<private, i32> = &(obj.numbers[2u]);
+    let x_800 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_800;
+    let x_463 : vec3<f32> = vec3<f32>(x_453.x, x_453.z, x_461.y);
+    let x_801 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_801;
+    let x_230 : i32 = *(x_229);
+    let x_802 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_802;
+    let x_803 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_803;
+    let x_804 : i32 = *(x_229);
+    *(x_229) = 0i;
+    *(x_229) = x_804;
+    let x_464 : vec2<f32> = vec2<f32>(x_450.y, x_191.x);
+    let x_805 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_805;
+    let x_234 : f32 = color.y;
+    let x_806 : i32 = *(x_229);
+    *(x_229) = 0i;
+    *(x_229) = x_806;
+    let x_465 : vec2<f32> = vec2<f32>(x_463.x, x_185.x);
+    let x_807 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_807;
+    let x_808 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_808;
+    let x_466 : vec2<f32> = vec2<f32>(x_455.y, vec2<f32>().y);
+    let x_809 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_809;
+    color.y = (f32(x_230) + x_234);
+    let x_810 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_810;
+  }
+  let x_811 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_811;
+  let x_467 : vec2<f32> = vec2<f32>(x_191.x, x_191.x);
+  let x_812 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_812;
+  let x_238 : f32 = uv[0i];
+  let x_813 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_813;
+  let x_814 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_814;
+  if ((x_238 > 0.75f)) {
+    let x_815 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_815;
+    let x_245 : i32 = obj.numbers[3i];
+    let x_816 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_816;
+    let x_817 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_817;
+    let x_468 : vec3<f32> = vec3<f32>(x_467.x, x_467.x, x_467.x);
+    let x_818 : f32 = uv[0i];
+    uv[0i] = 0.0f;
+    uv[0i] = x_818;
+    let x_819 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_819;
+    let x_249 : f32 = color.z;
+    let x_820 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_820;
+    let x_469 : vec3<f32> = vec3<f32>(x_467.x, x_191.y, x_467.y);
+    let x_821 : f32 = color.z;
+    color.z = 0.0f;
+    color.z = x_821;
+    let x_822 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_822;
+    let x_470 : vec2<f32> = vec2<f32>(vec2<f32>().x, vec2<f32>().y);
+    let x_823 : f32 = color.z;
+    color.z = 0.0f;
+    color.z = x_823;
+    color.z = (x_249 + f32(x_245));
+    let x_824 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_824;
+    let x_471 : vec2<f32> = vec2<f32>(x_470.y, x_470.y);
+  }
+  let x_825 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_825;
+  let x_472 : vec3<f32> = vec3<f32>(x_454.x, x_454.y, x_454.y);
+  let x_253 : ptr<private, i32> = &(obj.numbers[4i]);
+  let x_254 : i32 = *(x_253);
+  let x_826 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_826;
+  let x_827 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_827;
+  let x_473 : vec3<f32> = vec3<f32>(x_446.y, x_453.x, x_453.x);
+  let x_828 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_828;
+  let x_474 : vec2<f32> = vec2<f32>(x_191.x, x_184.z);
+  let x_829 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_829;
+  let x_257 : f32 = color.y;
+  let x_830 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_830;
+  let x_475 : vec2<f32> = vec2<f32>(x_467.x, x_450.x);
+  let x_831 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_831;
+  let x_832 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_832;
+  let x_476 : vec2<f32> = vec2<f32>(x_451.z, x_460.y);
+  color.y = (x_257 + f32(x_254));
+  let x_477 : vec3<f32> = vec3<f32>(vec2<f32>().x, x_472.x, vec2<f32>().y);
+  let x_833 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_833;
+  let x_834 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_834;
+  let x_478 : vec2<f32> = vec2<f32>(x_472.x, x_472.y);
+  let x_835 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_835;
+  let x_261 : f32 = uv.y;
+  let x_836 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_836;
+  let x_479 : vec3<f32> = vec3<f32>(vec2<f32>().y, x_454.y, vec2<f32>().x);
+  let x_837 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_837;
+  let x_838 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_838;
+  let x_480 : vec3<f32> = vec3<f32>(x_446.x, x_446.x, vec2<f32>().y);
+  let x_839 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_839;
+  if ((x_261 > 0.25f)) {
+    let x_481 : vec2<f32> = vec2<f32>(x_447.x, x_480.z);
+    let x_840 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_840;
+    let x_267 : i32 = obj.numbers[5u];
+    let x_841 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_841;
+    let x_842 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_842;
+    let x_843 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_843;
+    let x_270 : f32 = color.x;
+    let x_844 : f32 = uv[0i];
+    uv[0i] = 0.0f;
+    uv[0i] = x_844;
+    let x_482 : vec3<f32> = vec3<f32>(x_455.x, x_475.y, x_455.y);
+    let x_845 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_845;
+    let x_846 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_846;
+    let x_847 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_847;
+    let x_483 : vec3<f32> = vec3<f32>(x_184.w, x_184.w, x_192.x);
+    let x_848 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_848;
+    color.x = (f32(x_267) + x_270);
+    let x_484 : vec3<f32> = vec3<f32>(x_454.y, x_450.x, x_454.y);
+    let x_849 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_849;
+  }
+  let x_850 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_850;
+  let x_485 : vec3<f32> = vec3<f32>(x_467.x, x_450.y, x_450.x);
+  let x_851 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_851;
+  let x_852 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_852;
+  let x_274 : f32 = uv.y;
+  let x_853 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_853;
+  if ((x_274 > 0.5f)) {
+    let x_854 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_854;
+    let x_486 : vec2<f32> = vec2<f32>(x_480.y, x_455.y);
+    let x_279 : ptr<private, i32> = &(obj.numbers[6u]);
+    let x_855 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_855;
+    let x_487 : vec2<f32> = vec2<f32>(x_449.z, x_449.y);
+    let x_856 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_856;
+    let x_280 : i32 = *(x_279);
+    let x_857 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_857;
+    let x_858 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_858;
+    let x_859 : i32 = *(x_253);
+    *(x_253) = 0i;
+    *(x_253) = x_859;
+    let x_488 : vec2<f32> = vec2<f32>(x_473.z, x_473.y);
+    let x_283 : f32 = color.y;
+    let x_860 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_860;
+    let x_861 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_861;
+    let x_489 : vec2<f32> = vec2<f32>(x_475.y, x_475.x);
+    let x_862 : i32 = *(x_279);
+    *(x_279) = 0i;
+    *(x_279) = x_862;
+    let x_863 : i32 = *(x_279);
+    *(x_279) = 0i;
+    *(x_279) = x_863;
+    let x_490 : vec2<f32> = vec2<f32>(x_480.z, x_480.z);
+    let x_864 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_864;
+    color.y = (f32(x_280) + x_283);
+    let x_865 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_865;
+    let x_491 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, x_454.x);
+    let x_866 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_866;
+  }
+  let x_492 : vec2<f32> = vec2<f32>(x_455.y, x_455.y);
+  let x_867 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_867;
+  let x_287 : f32 = uv.y;
+  let x_868 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_868;
+  let x_493 : vec2<f32> = vec2<f32>(x_475.x, x_475.y);
+  let x_869 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_869;
+  let x_870 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_870;
+  let x_494 : vec3<f32> = vec3<f32>(x_191.x, x_191.y, x_191.y);
+  let x_871 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_871;
+  if ((x_287 > 0.75f)) {
+    let x_872 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_872;
+    let x_873 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_873;
+    let x_495 : vec3<f32> = vec3<f32>(x_192.y, x_192.x, x_192.y);
+    let x_874 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_874;
+    let x_293 : i32 = obj.numbers[7i];
+    let x_875 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_875;
+    let x_496 : vec3<f32> = vec3<f32>(x_475.x, x_467.y, x_467.x);
+    let x_876 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_876;
+    let x_497 : vec2<f32> = vec2<f32>(x_477.x, x_461.y);
+    let x_877 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_877;
+    let x_878 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_878;
+    let x_498 : vec3<f32> = vec3<f32>(x_478.x, x_478.y, x_478.x);
+    let x_879 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_879;
+    let x_296 : f32 = color.z;
+    let x_880 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_880;
+    let x_499 : vec2<f32> = vec2<f32>(x_184.x, x_184.y);
+    let x_881 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_881;
+    let x_882 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_882;
+    let x_883 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_883;
+    let x_500 : vec3<f32> = vec3<f32>(x_499.y, x_499.y, x_494.z);
+    let x_884 : f32 = color.z;
+    color.z = 0.0f;
+    color.z = x_884;
+    color.z = (f32(x_293) + x_296);
+    let x_885 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_885;
+    let x_501 : vec2<f32> = vec2<f32>(x_453.x, x_453.z);
+    let x_886 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_886;
+  }
+  let x_887 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_887;
+  let x_502 : vec2<f32> = vec2<f32>(x_451.y, x_192.y);
+  let x_888 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_888;
+  let x_300 : ptr<private, i32> = &(obj.numbers[8i]);
+  let x_301 : i32 = *(x_300);
+  let x_889 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_889;
+  let x_503 : vec2<f32> = vec2<f32>(x_185.x, x_451.z);
+  let x_890 : i32 = *(x_300);
+  *(x_300) = 0i;
+  *(x_300) = x_890;
+  let x_891 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_891;
+  let x_504 : vec2<f32> = vec2<f32>(x_453.y, vec2<f32>().x);
+  let x_892 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_892;
+  let x_505 : vec3<f32> = vec3<f32>(x_504.x, x_504.y, x_504.x);
+  let x_893 : f32 = color.z;
+  color.z = 0.0f;
+  color.z = x_893;
+  let x_304 : f32 = color.z;
+  let x_894 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_894;
+  let x_506 : vec2<f32> = vec2<f32>(x_493.x, x_492.x);
+  let x_895 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_895;
+  let x_896 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_896;
+  let x_507 : vec2<f32> = vec2<f32>(x_461.x, x_447.x);
+  let x_897 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_897;
+  color.z = (x_304 + f32(x_301));
+  let x_898 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_898;
+  let x_899 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_899;
+  let x_508 : vec3<f32> = vec3<f32>(x_461.y, x_461.x, x_506.y);
+  let x_900 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_900;
+  let x_308 : f32 = uv.x;
+  let x_901 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_901;
+  let x_509 : vec3<f32> = vec3<f32>(x_503.y, x_503.x, x_448.z);
+  let x_902 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_902;
+  let x_310 : f32 = uv.y;
+  let x_903 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_903;
+  let x_904 : f32 = color.z;
+  color.z = 0.0f;
+  color.z = x_904;
+  let x_510 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, x_485.y, x_485.z);
+  let x_905 : f32 = color.z;
+  color.z = 0.0f;
+  color.z = x_905;
+  let x_906 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_906;
+  let x_511 : vec2<f32> = vec2<f32>(x_485.z, x_485.y);
+  let x_907 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_907;
+  let x_908 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_908;
+  let x_512 : vec3<f32> = vec3<f32>(x_455.y, x_455.y, x_455.y);
+  let x_909 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_909;
+  if ((abs((x_308 - x_310)) < 0.25f)) {
+    let x_910 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_910;
+    let x_911 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_911;
+    let x_513 : vec3<f32> = vec3<f32>(x_505.z, x_505.x, x_448.x);
+    let x_912 : i32 = *(x_300);
+    *(x_300) = 0i;
+    *(x_300) = x_912;
+    let x_317 : i32 = obj.numbers[9u];
+    let x_514 : vec3<f32> = vec3<f32>(x_474.y, x_474.y, x_474.y);
+    let x_913 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_913;
+    let x_320 : f32 = color.x;
+    let x_914 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_914;
+    let x_515 : vec2<f32> = vec2<f32>(x_502.x, x_502.y);
+    let x_915 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_915;
+    let x_916 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_916;
+    let x_516 : vec2<f32> = vec2<f32>(x_452.x, x_452.x);
+    let x_917 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_917;
+    let x_918 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_918;
+    let x_517 : vec3<f32> = vec3<f32>(vec2<f32>().x, vec2<f32>().x, vec2<f32>().y);
+    color.x = (f32(x_317) + x_320);
+    let x_919 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_919;
+    let x_518 : vec3<f32> = vec3<f32>(x_480.y, x_508.x, x_480.x);
+    let x_920 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_920;
+  }
+  let x_921 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_921;
+  let x_325 : vec3<f32> = color;
+  let x_922 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_922;
+  let x_519 : vec3<f32> = vec3<f32>(x_447.x, x_446.x, x_446.y);
+  let x_326 : vec3<f32> = normalize(x_325);
+  let x_923 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_923;
+  let x_924 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_924;
+  let x_925 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_925;
+  let x_926 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_926;
+  let x_520 : vec2<f32> = vec2<f32>(x_506.y, x_519.y);
+  let x_927 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_927;
+  let x_330 : vec4<f32> = vec4<f32>(x_326.x, x_326.y, x_326.z, 1.0f);
+  let x_928 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_928;
+  let x_521 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).y, x_520.y);
+  let x_929 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_929;
+  x_GLF_color = x_330;
+  let x_930 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_930;
+  let x_522 : vec3<f32> = vec3<f32>(x_330.w, x_330.y, x_493.x);
+  let x_931 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_931;
+  return;
+}
+
+struct main_out {
+  @location(0)
+  x_GLF_color_1 : vec4<f32>,
+}
+
+@fragment
+fn main(@builtin(position) gl_FragCoord_param : vec4<f32>) -> main_out {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  return main_out(x_GLF_color);
+}
+
+error: function-scope 'var' must have a constructible type
diff --git a/test/tint/bug/tint/749.spvasm.expected.msl b/test/tint/bug/tint/749.spvasm.expected.msl
index 149037e..2c170a6 100644
--- a/test/tint/bug/tint/749.spvasm.expected.msl
+++ b/test/tint/bug/tint/749.spvasm.expected.msl
@@ -1 +1,1495 @@
-SKIP: triggers crbug.com/tint/98
+SKIP: FAILED
+
+
+struct QuicksortObject {
+  numbers : array<i32, 10u>,
+}
+
+struct buf0 {
+  /* @offset(0) */
+  resolution : vec2<f32>,
+}
+
+var<private> obj : QuicksortObject;
+
+var<private> gl_FragCoord : vec4<f32>;
+
+@group(0) @binding(0) var<uniform> x_188 : buf0;
+
+var<private> x_GLF_color : vec4<f32>;
+
+fn swap_i1_i1_(i : ptr<function, i32>, j : ptr<function, i32>) {
+  var temp : i32;
+  let x_932 : i32 = temp;
+  temp = 0i;
+  temp = x_932;
+  let x_523 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+  let x_933 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_933;
+  let x_28 : i32 = *(i);
+  let x_934 : i32 = *(j);
+  *(j) = 0i;
+  *(j) = x_934;
+  let x_524 : vec3<f32> = vec3<f32>(x_523.y, x_523.x, x_523.y);
+  let x_935 : i32 = temp;
+  temp = 0i;
+  temp = x_935;
+  let x_30 : ptr<private, i32> = &(obj.numbers[x_28]);
+  let x_936 : i32 = *(x_30);
+  *(x_30) = 0i;
+  *(x_30) = x_936;
+  let x_31 : i32 = *(x_30);
+  let x_937 : i32 = temp;
+  temp = 0i;
+  temp = x_937;
+  temp = x_31;
+  let x_938 : i32 = *(j);
+  *(j) = 0i;
+  *(j) = x_938;
+  let x_525 : vec3<f32> = vec3<f32>(x_523.z, vec3<f32>(1.0f, 2.0f, 3.0f).x, x_523.y);
+  let x_939 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_939;
+  let x_32 : i32 = *(i);
+  let x_940 : i32 = *(x_30);
+  *(x_30) = 0i;
+  *(x_30) = x_940;
+  let x_33 : i32 = *(j);
+  let x_941 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_941;
+  let x_526 : vec3<f32> = vec3<f32>(x_525.x, x_525.z, x_525.z);
+  let x_942 : i32 = *(x_30);
+  *(x_30) = 0i;
+  *(x_30) = x_942;
+  let x_34 : ptr<private, i32> = &(obj.numbers[x_33]);
+  let x_35 : i32 = *(x_34);
+  let x_943 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_943;
+  let x_527 : vec2<f32> = vec2<f32>(x_526.x, x_526.x);
+  let x_36 : ptr<private, i32> = &(obj.numbers[x_32]);
+  let x_528 : vec3<f32> = vec3<f32>(x_524.x, x_524.z, x_524.x);
+  *(x_36) = x_35;
+  let x_944 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_944;
+  let x_529 : vec3<f32> = vec3<f32>(x_526.y, x_526.z, x_526.x);
+  let x_945 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_945;
+  let x_37 : i32 = *(j);
+  let x_946 : i32 = temp;
+  temp = 0i;
+  temp = x_946;
+  let x_530 : vec2<f32> = vec2<f32>(x_529.z, x_529.y);
+  let x_947 : i32 = *(x_34);
+  *(x_34) = 0i;
+  *(x_34) = x_947;
+  let x_38 : i32 = temp;
+  let x_948 : i32 = *(j);
+  *(j) = 0i;
+  *(j) = x_948;
+  let x_531 : vec3<f32> = vec3<f32>(x_527.x, x_526.y, x_526.x);
+  let x_949 : i32 = *(x_36);
+  *(x_36) = 0i;
+  *(x_36) = x_949;
+  let x_950 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_950;
+  let x_532 : vec3<f32> = vec3<f32>(x_528.x, x_528.y, x_528.x);
+  let x_951 : i32 = *(x_34);
+  *(x_34) = 0i;
+  *(x_34) = x_951;
+  obj.numbers[x_37] = x_38;
+  return;
+}
+
+fn performPartition_i1_i1_(l : ptr<function, i32>, h : ptr<function, i32>) -> i32 {
+  var param_3 : i32;
+  var i_1 : i32;
+  var j_1 : i32;
+  var param_2 : i32;
+  var param_1 : i32;
+  var param : i32;
+  var pivot : i32;
+  var x_537 : vec2<f32>;
+  var x_538 : vec3<f32>;
+  let x_952 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_952;
+  let x_41 : i32 = *(h);
+  let x_953 : i32 = *(l);
+  *(l) = 0i;
+  *(l) = x_953;
+  let x_42 : ptr<private, i32> = &(obj.numbers[x_41]);
+  let x_954 : i32 = *(x_42);
+  *(x_42) = 0i;
+  *(x_42) = x_954;
+  let x_43 : i32 = *(x_42);
+  let x_955 : i32 = param_3;
+  param_3 = 0i;
+  param_3 = x_955;
+  let x_534 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+  let x_956 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_956;
+  pivot = x_43;
+  let x_45 : i32 = *(l);
+  let x_957 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_957;
+  let x_958 : i32 = j_1;
+  j_1 = 0i;
+  j_1 = x_958;
+  let x_535 : vec3<f32> = vec3<f32>(x_534.y, x_534.z, x_534.y);
+  let x_959 : i32 = *(l);
+  *(l) = 0i;
+  *(l) = x_959;
+  i_1 = (x_45 - bitcast<i32>(1u));
+  let x_49 : i32 = *(l);
+  let x_536 : vec3<f32> = vec3<f32>(x_534.x, x_534.z, x_535.x);
+  j_1 = 10i;
+  let x_960 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_960;
+  loop {
+    var x_61 : ptr<private, i32>;
+    var x_539 : vec3<f32>;
+    var x_541 : vec3<f32>;
+    let x_961 : i32 = pivot;
+    pivot = 0i;
+    pivot = x_961;
+    let x_962 : i32 = param_1;
+    param_1 = 0i;
+    param_1 = x_962;
+    let x_55 : i32 = j_1;
+    let x_963 : i32 = pivot;
+    pivot = 0i;
+    pivot = x_963;
+    x_537 = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+    let x_964 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_964;
+    let x_56 : i32 = *(h);
+    let x_965 : i32 = *(h);
+    *(h) = 0i;
+    *(h) = x_965;
+    let x_966 : i32 = param;
+    param = 0i;
+    param = x_966;
+    let x_967 : i32 = j_1;
+    j_1 = 0i;
+    j_1 = x_967;
+    x_538 = vec3<f32>(x_534.x, x_537.y, x_534.z);
+    let x_968 : i32 = param;
+    param = 0i;
+    param = x_968;
+    if ((x_55 <= (x_56 - bitcast<i32>(1u)))) {
+    } else {
+      break;
+    }
+    let x_60 : i32 = j_1;
+    let x_969 : i32 = *(x_42);
+    *(x_42) = 0i;
+    *(x_42) = x_969;
+    x_61 = obj.numbers[x_60];
+    let x_970 : i32 = *(h);
+    *(h) = 0i;
+    *(h) = x_970;
+    x_539 = vec3<f32>(x_537.x, x_535.z, x_537.x);
+    let x_971 : i32 = param_1;
+    param_1 = 0i;
+    param_1 = x_971;
+    let x_62 : ptr<undefined, i32> = x_61;
+    let x_972 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_972;
+    let x_63 : i32 = pivot;
+    let x_540 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, x_534.z);
+    let x_973 : i32 = i_1;
+    i_1 = 0i;
+    i_1 = x_973;
+    let x_974 : i32 = *(l);
+    *(l) = 0i;
+    *(l) = x_974;
+    x_541 = vec3<f32>(x_534.y, x_534.x, x_534.y);
+    let x_975 : i32 = pivot;
+    pivot = 0i;
+    pivot = x_975;
+    if ((x_62 <= x_63)) {
+      let x_542 : vec3<f32> = vec3<f32>(x_541.z, x_541.x, x_541.x);
+      let x_976 : i32 = param_3;
+      param_3 = 0i;
+      param_3 = x_976;
+      let x_67 : i32 = i_1;
+      let x_977 : i32 = pivot;
+      pivot = 0i;
+      pivot = x_977;
+      let x_543 : vec2<f32> = vec2<f32>(x_539.x, x_541.y);
+      let x_978 : i32 = i_1;
+      i_1 = 0i;
+      i_1 = x_978;
+      let x_979 : i32 = param;
+      param = 0i;
+      param = x_979;
+      i_1 = (x_67 + bitcast<i32>(1u));
+      let x_980 : i32 = *(l);
+      *(l) = 0i;
+      *(l) = x_980;
+      let x_544 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).y, x_540.x);
+      let x_70 : i32 = i_1;
+      let x_545 : vec2<f32> = vec2<f32>(x_537.y, x_538.x);
+      let x_981 : i32 = param;
+      param = 0i;
+      param = x_981;
+      param = x_70;
+      let x_982 : i32 = param;
+      param = 0i;
+      param = x_982;
+      let x_546 : vec2<f32> = vec2<f32>(x_545.x, x_545.x);
+      let x_983 : i32 = i_1;
+      i_1 = 0i;
+      i_1 = x_983;
+      let x_72 : i32 = j_1;
+      param_1 = x_72;
+      let x_984 : i32 = param_3;
+      param_3 = 0i;
+      param_3 = x_984;
+      swap_i1_i1_(&(param), &(param_1));
+      let x_985 : i32 = param_1;
+      param_1 = 0i;
+      param_1 = x_985;
+    }
+    let x_986 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_986;
+
+    continuing {
+      let x_987 : i32 = *(h);
+      *(h) = 0i;
+      *(h) = x_987;
+      let x_74 : i32 = j_1;
+      let x_988 : i32 = *(h);
+      *(h) = 0i;
+      *(h) = x_988;
+      let x_547 : vec3<f32> = vec3<f32>(x_539.x, x_541.z, x_541.z);
+      let x_989 : ptr<undefined, i32> = x_61;
+      x_61 = 0i;
+      x_61 = x_989;
+      let x_990 : i32 = param;
+      param = 0i;
+      param = x_990;
+      j_1 = (1i + x_74);
+      let x_991 : i32 = param_1;
+      param_1 = 0i;
+      param_1 = x_991;
+      let x_548 : vec3<f32> = vec3<f32>(x_541.y, x_541.z, x_541.x);
+      let x_992 : ptr<undefined, i32> = x_61;
+      x_61 = 0i;
+      x_61 = x_992;
+    }
+  }
+  let x_76 : i32 = i_1;
+  let x_993 : i32 = *(x_42);
+  *(x_42) = 0i;
+  *(x_42) = x_993;
+  let x_549 : vec2<f32> = vec2<f32>(x_534.x, x_534.y);
+  let x_994 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_994;
+  let x_995 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_995;
+  i_1 = (1i + x_76);
+  let x_996 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_996;
+  let x_79 : i32 = i_1;
+  let x_997 : i32 = j_1;
+  j_1 = 0i;
+  j_1 = x_997;
+  let x_550 : vec2<f32> = vec2<f32>(x_534.x, x_534.x);
+  let x_998 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_998;
+  param_2 = x_79;
+  let x_551 : vec2<f32> = vec2<f32>(x_534.y, x_536.x);
+  let x_999 : i32 = pivot;
+  pivot = 0i;
+  pivot = x_999;
+  let x_81 : i32 = *(h);
+  let x_552 : vec2<f32> = vec2<f32>(x_550.x, x_549.y);
+  let x_1000 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_1000;
+  param_3 = x_81;
+  let x_1001 : i32 = i_1;
+  i_1 = 0i;
+  i_1 = x_1001;
+  let x_553 : vec2<f32> = vec2<f32>(x_549.y, x_552.x);
+  let x_1002 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_1002;
+  swap_i1_i1_(&(param_2), &(param_3));
+  let x_1003 : i32 = *(l);
+  *(l) = 0i;
+  *(l) = x_1003;
+  let x_554 : vec2<f32> = vec2<f32>(x_536.z, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_1004 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_1004;
+  let x_83 : i32 = i_1;
+  let x_1005 : i32 = param;
+  param = 0i;
+  param = x_1005;
+  let x_555 : vec2<f32> = vec2<f32>(x_534.y, x_534.x);
+  let x_1006 : i32 = j_1;
+  j_1 = 0i;
+  j_1 = x_1006;
+  return x_83;
+}
+
+fn quicksort_() {
+  var param_4 : i32;
+  var h_1 : i32;
+  var p : i32;
+  var l_1 : i32;
+  var top : i32;
+  var stack : array<i32, 10u>;
+  var param_5 : i32;
+  l_1 = 0i;
+  let x_1007 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1007;
+  h_1 = 9i;
+  let x_1008 : array<i32, 10u> = stack;
+  stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+  stack = x_1008;
+  let x_556 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_1009 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1009;
+  top = -1i;
+  let x_1010 : i32 = p;
+  p = 0i;
+  p = x_1010;
+  let x_93 : i32 = top;
+  let x_557 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).x);
+  let x_1011 : i32 = p;
+  p = 0i;
+  p = x_1011;
+  let x_94 : i32 = (x_93 + bitcast<i32>(1u));
+  let x_1012 : i32 = top;
+  top = 0i;
+  top = x_1012;
+  let x_558 : vec2<f32> = vec2<f32>(x_556.y, x_557.y);
+  let x_1013 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1013;
+  top = x_94;
+  let x_1014 : i32 = h_1;
+  h_1 = 0i;
+  h_1 = x_1014;
+  let x_559 : vec3<f32> = vec3<f32>(x_557.y, x_557.x, x_557.x);
+  let x_1015 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1015;
+  let x_95 : i32 = l_1;
+  let x_1016 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_1016;
+  let x_560 : vec3<f32> = vec3<f32>(x_559.y, x_559.x, x_557.x);
+  let x_96 : ptr<function, i32> = &(stack[x_94]);
+  let x_1017 : array<i32, 10u> = stack;
+  stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+  stack = x_1017;
+  let x_561 : vec3<f32> = vec3<f32>(x_556.y, x_556.y, x_556.y);
+  let x_1018 : i32 = l_1;
+  l_1 = 0i;
+  l_1 = 0i;
+  *(x_96) = x_95;
+  let x_1019 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1019;
+  let x_97 : i32 = top;
+  let x_1020 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1020;
+  let x_562 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, x_558.y, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_1021 : i32 = *(x_96);
+  *(x_96) = 0i;
+  *(x_96) = x_1021;
+  let x_98 : i32 = (x_97 + 1i);
+  let x_1022 : i32 = *(x_96);
+  *(x_96) = 0i;
+  *(x_96) = x_1022;
+  let x_563 : vec3<f32> = vec3<f32>(x_559.x, x_559.z, x_556.y);
+  top = x_98;
+  let x_1023 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1023;
+  let x_99 : i32 = h_1;
+  let x_1024 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1024;
+  let x_564 : vec3<f32> = vec3<f32>(x_558.x, x_561.x, x_558.y);
+  let x_1025 : i32 = l_1;
+  l_1 = 0i;
+  l_1 = x_1025;
+  let x_100 : ptr<function, i32> = &(stack[x_98]);
+  let x_1026 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1026;
+  let x_565 : vec2<f32> = vec2<f32>(x_564.z, x_564.z);
+  let x_1027 : i32 = p;
+  p = 0i;
+  p = x_1027;
+  *(x_100) = x_99;
+  loop {
+    let x_566 : vec3<f32> = vec3<f32>(x_563.x, x_563.x, x_563.x);
+    let x_1028 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1028;
+    let x_1029 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1029;
+    let x_106 : i32 = top;
+    let x_1030 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1030;
+    let x_567 : vec2<f32> = vec2<f32>(x_558.x, x_564.z);
+    let x_1031 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1031;
+    if ((x_106 >= bitcast<i32>(0u))) {
+    } else {
+      break;
+    }
+    let x_1032 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_1032;
+    let x_568 : vec3<f32> = vec3<f32>(x_559.y, x_559.x, x_563.y);
+    let x_1033 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1033;
+    let x_108 : i32 = top;
+    let x_569 : vec3<f32> = vec3<f32>(x_565.x, x_567.y, x_565.x);
+    let x_1034 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1034;
+    let x_570 : vec2<f32> = vec2<f32>(x_556.x, x_556.x);
+    let x_1035 : i32 = p;
+    p = 0i;
+    p = x_1035;
+    top = (x_108 - bitcast<i32>(1u));
+    let x_1036 : i32 = p;
+    p = 0i;
+    p = x_1036;
+    let x_110 : ptr<function, i32> = &(stack[x_108]);
+    let x_1037 : i32 = *(x_96);
+    *(x_96) = 0i;
+    *(x_96) = x_1037;
+    let x_111 : i32 = *(x_110);
+    let x_1038 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1038;
+    let x_571 : vec3<f32> = vec3<f32>(x_559.y, x_559.x, x_564.y);
+    let x_1039 : i32 = l_1;
+    l_1 = 0i;
+    l_1 = x_1039;
+    h_1 = x_111;
+    let x_1040 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1040;
+    let x_572 : vec2<f32> = vec2<f32>(x_562.y, x_561.y);
+    let x_1041 : i32 = p;
+    p = 0i;
+    p = x_1041;
+    let x_112 : i32 = top;
+    let x_1042 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1042;
+    let x_1043 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1043;
+    let x_573 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+    top = (x_112 - 1i);
+    let x_1044 : i32 = param_5;
+    param_5 = 0i;
+    param_5 = x_1044;
+    let x_574 : vec3<f32> = vec3<f32>(x_570.y, x_565.x, x_570.y);
+    let x_1045 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1045;
+    let x_114 : ptr<function, i32> = &(stack[x_112]);
+    let x_575 : vec2<f32> = vec2<f32>(x_564.y, x_564.z);
+    let x_1046 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1046;
+    let x_115 : i32 = *(x_114);
+    let x_1047 : i32 = p;
+    p = 0i;
+    p = x_1047;
+    let x_576 : vec3<f32> = vec3<f32>(x_573.y, x_573.y, x_565.x);
+    let x_1048 : i32 = param_5;
+    param_5 = 0i;
+    param_5 = x_1048;
+    l_1 = x_115;
+    let x_1049 : i32 = top;
+    top = 0i;
+    top = x_1049;
+    let x_118 : i32 = l_1;
+    param_4 = x_118;
+    let x_1050 : i32 = *(x_110);
+    *(x_110) = 0i;
+    *(x_110) = x_1050;
+    let x_577 : vec2<f32> = vec2<f32>(x_569.y, x_569.z);
+    let x_120 : i32 = h_1;
+    let x_578 : vec2<f32> = vec2<f32>(x_558.x, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+    param_5 = x_120;
+    let x_1051 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1051;
+    let x_121 : i32 = performPartition_i1_i1_(&(param_4), &(param_5));
+    let x_579 : vec2<f32> = vec2<f32>(x_567.x, x_568.x);
+    let x_1052 : i32 = param_5;
+    param_5 = 0i;
+    param_5 = x_1052;
+    p = x_121;
+    let x_1053 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1053;
+    let x_122 : i32 = p;
+    let x_1054 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1054;
+    let x_580 : vec2<f32> = vec2<f32>(x_568.y, x_568.y);
+    let x_1055 : i32 = l_1;
+    l_1 = 0i;
+    l_1 = x_1055;
+    let x_1056 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1056;
+    let x_124 : i32 = l_1;
+    let x_1057 : i32 = *(x_110);
+    *(x_110) = 0i;
+    *(x_110) = x_1057;
+    let x_1058 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1058;
+    let x_582 : vec2<f32> = vec2<f32>(x_567.y, x_573.x);
+    let x_1059 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1059;
+    if (((x_122 - bitcast<i32>(1u)) > x_124)) {
+      let x_1060 : i32 = param_4;
+      param_4 = 0i;
+      param_4 = x_1060;
+      let x_128 : i32 = top;
+      let x_583 : vec2<f32> = vec2<f32>(x_571.y, x_556.y);
+      let x_1061 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1061;
+      let x_1062 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1062;
+      let x_584 : vec2<f32> = vec2<f32>(x_569.z, x_569.y);
+      let x_585 : vec3<f32> = vec3<f32>(x_580.y, x_577.x, x_577.x);
+      let x_130 : i32 = l_1;
+      let x_1063 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1063;
+      let x_586 : vec2<f32> = vec2<f32>(x_564.x, x_585.x);
+      let x_1064 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1064;
+      let x_131 : ptr<function, i32> = &(stack[(1i + x_128)]);
+      let x_1065 : i32 = *(x_110);
+      *(x_110) = 0i;
+      *(x_110) = x_1065;
+      let x_587 : vec3<f32> = vec3<f32>(x_566.y, x_566.y, x_563.x);
+      let x_1066 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1066;
+      *(x_131) = x_130;
+      let x_132 : i32 = top;
+      let x_1067 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1067;
+      let x_588 : vec2<f32> = vec2<f32>(x_575.y, x_575.x);
+      let x_1068 : i32 = *(x_131);
+      *(x_131) = 0i;
+      *(x_131) = x_1068;
+      let x_133 : i32 = bitcast<i32>((1u + bitcast<u32>(x_132)));
+      let x_1069 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1069;
+      let x_589 : vec3<f32> = vec3<f32>(x_576.z, x_588.y, x_576.z);
+      let x_1070 : i32 = h_1;
+      h_1 = 0i;
+      h_1 = x_1070;
+      top = x_133;
+      let x_1071 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1071;
+      let x_134 : i32 = p;
+      let x_590 : vec2<f32> = vec2<f32>(x_576.x, x_573.y);
+      let x_1072 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1072;
+      let x_136 : ptr<function, i32> = &(stack[x_133]);
+      let x_1073 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1073;
+      *(x_136) = (x_134 - bitcast<i32>(1u));
+      let x_1074 : i32 = *(x_96);
+      *(x_96) = 0i;
+      *(x_96) = x_1074;
+      let x_591 : vec2<f32> = vec2<f32>(x_569.z, x_569.y);
+      let x_1075 : i32 = *(x_136);
+      *(x_136) = 0i;
+      *(x_136) = x_1075;
+    }
+    let x_1076 : i32 = *(x_96);
+    *(x_96) = 0i;
+    *(x_96) = x_1076;
+    let x_592 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+    let x_1077 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_1077;
+    let x_137 : i32 = p;
+    let x_1078 : i32 = *(x_114);
+    *(x_114) = 0i;
+    *(x_114) = x_1078;
+    let x_593 : vec3<f32> = vec3<f32>(x_571.z, x_556.x, x_556.y);
+    let x_1079 : i32 = p;
+    p = 0i;
+    p = x_1079;
+    let x_594 : vec3<f32> = vec3<f32>(x_563.z, x_563.x, x_575.x);
+    let x_1080 : i32 = *(x_114);
+    *(x_114) = 0i;
+    *(x_114) = x_1080;
+    let x_139 : i32 = h_1;
+    let x_1081 : i32 = top;
+    top = 0i;
+    top = x_1081;
+    let x_595 : vec3<f32> = vec3<f32>(x_560.z, x_568.x, x_560.x);
+    let x_1082 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1082;
+    let x_1083 : i32 = p;
+    p = 0i;
+    p = x_1083;
+    if ((bitcast<i32>((1u + bitcast<u32>(x_137))) < x_139)) {
+      let x_1084 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1084;
+      let x_596 : vec2<f32> = vec2<f32>(x_592.y, x_582.x);
+      let x_1085 : i32 = l_1;
+      l_1 = 0i;
+      l_1 = x_1085;
+      let x_143 : i32 = top;
+      let x_1086 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1086;
+      let x_597 : vec3<f32> = vec3<f32>(x_562.y, x_560.y, x_560.y);
+      let x_144 : i32 = (x_143 + 1i);
+      let x_1087 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1087;
+      top = x_144;
+      let x_1088 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1088;
+      let x_145 : i32 = p;
+      let x_1089 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1089;
+      let x_599 : vec3<f32> = vec3<f32>(x_560.z, x_560.x, x_568.x);
+      let x_1090 : i32 = p;
+      p = 0i;
+      p = x_1090;
+      let x_600 : vec3<f32> = vec3<f32>(x_556.x, x_580.x, x_580.x);
+      let x_1091 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1091;
+      let x_147 : ptr<function, i32> = &(stack[x_144]);
+      let x_1092 : i32 = *(x_110);
+      *(x_110) = 0i;
+      *(x_110) = x_1092;
+      let x_601 : vec2<f32> = vec2<f32>(x_563.x, x_563.y);
+      *(x_147) = bitcast<i32>((1u + bitcast<u32>(x_145)));
+      let x_1093 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1093;
+      let x_148 : i32 = top;
+      let x_1094 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1094;
+      let x_602 : vec2<f32> = vec2<f32>(x_565.y, x_599.y);
+      let x_1095 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1095;
+      let x_149 : i32 = (x_148 + bitcast<i32>(1u));
+      let x_1096 : i32 = *(x_147);
+      *(x_147) = 0i;
+      *(x_147) = x_1096;
+      top = x_149;
+      let x_1097 : i32 = param_4;
+      param_4 = 0i;
+      param_4 = x_1097;
+      let x_150 : i32 = h_1;
+      let x_1098 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1098;
+      let x_1099 : i32 = *(x_96);
+      *(x_96) = 0i;
+      *(x_96) = x_1099;
+      stack[x_149] = x_150;
+      let x_1100 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1100;
+      let x_603 : vec3<f32> = vec3<f32>(x_568.y, x_564.x, x_564.x);
+      let x_1101 : i32 = l_1;
+      l_1 = 0i;
+      l_1 = x_1101;
+    }
+    let x_1102 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1102;
+
+    continuing {
+      let x_1103 : i32 = l_1;
+      l_1 = 0i;
+      l_1 = x_1103;
+      let x_604 : vec2<f32> = vec2<f32>(x_563.z, x_564.x);
+      let x_1104 : QuicksortObject = obj;
+      obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+      obj = x_1104;
+    }
+  }
+  let x_1105 : i32 = h_1;
+  h_1 = 0i;
+  h_1 = x_1105;
+  return;
+}
+
+fn main_1() {
+  var color : vec3<f32>;
+  var i_2 : i32;
+  var uv : vec2<f32>;
+  let x_717 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_717;
+  i_2 = 0i;
+  let x_721 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_721;
+  if (true) {
+    let x_722 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_722;
+    let x_431 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).x);
+    let x_158 : i32 = i_2;
+    let x_723 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_723;
+    let x_725 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_725;
+    let x_432 : vec2<f32> = vec2<f32>(x_431.y, x_431.y);
+    let x_726 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_726;
+  }
+  let x_756 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_756;
+  let x_446 : vec2<f32> = vec2<f32>(vec2<f32>().x, vec2<f32>().x);
+  let x_757 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_757;
+  quicksort_();
+  let x_758 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_758;
+  let x_184 : vec4<f32> = gl_FragCoord;
+  let x_759 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_759;
+  let x_447 : vec2<f32> = vec2<f32>(vec2<f32>().y, vec2<f32>().y);
+  let x_760 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_760;
+  let x_185 : vec2<f32> = vec2<f32>(x_184.x, x_184.y);
+  let x_448 : vec3<f32> = vec3<f32>(x_185.y, x_446.y, x_446.y);
+  let x_761 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_761;
+  let x_762 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_762;
+  let x_191 : vec2<f32> = x_188.resolution;
+  let x_763 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_763;
+  let x_449 : vec3<f32> = vec3<f32>(x_184.y, vec3<f32>(1.0f, 2.0f, 3.0f).z, x_184.w);
+  let x_764 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_764;
+  let x_192 : vec2<f32> = (x_185 / x_191);
+  let x_765 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_765;
+  let x_450 : vec2<f32> = vec2<f32>(x_447.x, x_185.y);
+  let x_766 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  let x_767 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_767;
+  color = x_766;
+  uv = x_192;
+  color = vec3<f32>(1.0f, 2.0f, 3.0f);
+  let x_768 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_768;
+  let x_451 : vec3<f32> = vec3<f32>(x_185.x, x_185.y, x_446.y);
+  let x_769 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_769;
+  let x_200 : ptr<private, i32> = &(obj.numbers[0u]);
+  let x_770 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_770;
+  let x_201 : i32 = *(x_200);
+  let x_771 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_771;
+  let x_772 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_772;
+  let x_206 : f32 = color.x;
+  let x_773 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_773;
+  let x_452 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_774 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_774;
+  let x_775 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_775;
+  let x_453 : vec3<f32> = vec3<f32>(x_451.x, x_450.x, x_450.y);
+  color.x = (x_206 + f32(x_201));
+  let x_776 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_776;
+  let x_777 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_777;
+  let x_454 : vec2<f32> = vec2<f32>(x_184.y, x_184.y);
+  let x_210 : f32 = uv.x;
+  let x_455 : vec2<f32> = vec2<f32>(x_192.y, x_192.x);
+  let x_778 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_778;
+  let x_779 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_779;
+  if ((x_210 > 0.25f)) {
+    let x_780 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_780;
+    let x_781 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_781;
+    let x_456 : vec3<f32> = vec3<f32>(vec2<f32>().y, x_448.y, x_448.y);
+    let x_782 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_782;
+    let x_216 : i32 = obj.numbers[1i];
+    let x_783 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_783;
+    let x_457 : vec2<f32> = vec2<f32>(x_454.x, x_454.x);
+    let x_784 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_784;
+    let x_785 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_785;
+    let x_458 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec2<f32>().y);
+    let x_786 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_786;
+    let x_219 : f32 = color[0i];
+    let x_787 : f32 = color[0i];
+    color[0i] = 0.0f;
+    color[0i] = x_787;
+    let x_788 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_788;
+    let x_789 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_789;
+    let x_459 : vec3<f32> = vec3<f32>(x_454.y, x_454.y, x_447.y);
+    let x_790 : f32 = color[0i];
+    color[0i] = 0.0f;
+    color[0i] = x_790;
+    color.x = (f32(x_216) + x_219);
+    let x_791 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_791;
+  }
+  let x_792 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_792;
+  let x_793 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_793;
+  let x_223 : f32 = uv.x;
+  let x_794 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_794;
+  let x_460 : vec3<f32> = vec3<f32>(x_453.z, x_453.y, x_453.y);
+  let x_795 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_795;
+  let x_796 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_796;
+  let x_461 : vec2<f32> = vec2<f32>(vec2<f32>().y, vec2<f32>().y);
+  let x_797 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_797;
+  if ((x_223 > 0.5f)) {
+    let x_798 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_798;
+    let x_462 : vec2<f32> = vec2<f32>(x_446.x, x_446.x);
+    let x_799 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_799;
+    let x_229 : ptr<private, i32> = &(obj.numbers[2u]);
+    let x_800 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_800;
+    let x_463 : vec3<f32> = vec3<f32>(x_453.x, x_453.z, x_461.y);
+    let x_801 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_801;
+    let x_230 : i32 = *(x_229);
+    let x_802 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_802;
+    let x_803 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_803;
+    let x_804 : i32 = *(x_229);
+    *(x_229) = 0i;
+    *(x_229) = x_804;
+    let x_464 : vec2<f32> = vec2<f32>(x_450.y, x_191.x);
+    let x_805 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_805;
+    let x_234 : f32 = color.y;
+    let x_806 : i32 = *(x_229);
+    *(x_229) = 0i;
+    *(x_229) = x_806;
+    let x_465 : vec2<f32> = vec2<f32>(x_463.x, x_185.x);
+    let x_807 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_807;
+    let x_808 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_808;
+    let x_466 : vec2<f32> = vec2<f32>(x_455.y, vec2<f32>().y);
+    let x_809 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_809;
+    color.y = (f32(x_230) + x_234);
+    let x_810 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_810;
+  }
+  let x_811 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_811;
+  let x_467 : vec2<f32> = vec2<f32>(x_191.x, x_191.x);
+  let x_812 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_812;
+  let x_238 : f32 = uv[0i];
+  let x_813 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_813;
+  let x_814 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_814;
+  if ((x_238 > 0.75f)) {
+    let x_815 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_815;
+    let x_245 : i32 = obj.numbers[3i];
+    let x_816 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_816;
+    let x_817 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_817;
+    let x_468 : vec3<f32> = vec3<f32>(x_467.x, x_467.x, x_467.x);
+    let x_818 : f32 = uv[0i];
+    uv[0i] = 0.0f;
+    uv[0i] = x_818;
+    let x_819 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_819;
+    let x_249 : f32 = color.z;
+    let x_820 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_820;
+    let x_469 : vec3<f32> = vec3<f32>(x_467.x, x_191.y, x_467.y);
+    let x_821 : f32 = color.z;
+    color.z = 0.0f;
+    color.z = x_821;
+    let x_822 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_822;
+    let x_470 : vec2<f32> = vec2<f32>(vec2<f32>().x, vec2<f32>().y);
+    let x_823 : f32 = color.z;
+    color.z = 0.0f;
+    color.z = x_823;
+    color.z = (x_249 + f32(x_245));
+    let x_824 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_824;
+    let x_471 : vec2<f32> = vec2<f32>(x_470.y, x_470.y);
+  }
+  let x_825 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_825;
+  let x_472 : vec3<f32> = vec3<f32>(x_454.x, x_454.y, x_454.y);
+  let x_253 : ptr<private, i32> = &(obj.numbers[4i]);
+  let x_254 : i32 = *(x_253);
+  let x_826 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_826;
+  let x_827 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_827;
+  let x_473 : vec3<f32> = vec3<f32>(x_446.y, x_453.x, x_453.x);
+  let x_828 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_828;
+  let x_474 : vec2<f32> = vec2<f32>(x_191.x, x_184.z);
+  let x_829 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_829;
+  let x_257 : f32 = color.y;
+  let x_830 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_830;
+  let x_475 : vec2<f32> = vec2<f32>(x_467.x, x_450.x);
+  let x_831 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_831;
+  let x_832 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_832;
+  let x_476 : vec2<f32> = vec2<f32>(x_451.z, x_460.y);
+  color.y = (x_257 + f32(x_254));
+  let x_477 : vec3<f32> = vec3<f32>(vec2<f32>().x, x_472.x, vec2<f32>().y);
+  let x_833 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_833;
+  let x_834 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_834;
+  let x_478 : vec2<f32> = vec2<f32>(x_472.x, x_472.y);
+  let x_835 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_835;
+  let x_261 : f32 = uv.y;
+  let x_836 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_836;
+  let x_479 : vec3<f32> = vec3<f32>(vec2<f32>().y, x_454.y, vec2<f32>().x);
+  let x_837 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_837;
+  let x_838 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_838;
+  let x_480 : vec3<f32> = vec3<f32>(x_446.x, x_446.x, vec2<f32>().y);
+  let x_839 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_839;
+  if ((x_261 > 0.25f)) {
+    let x_481 : vec2<f32> = vec2<f32>(x_447.x, x_480.z);
+    let x_840 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_840;
+    let x_267 : i32 = obj.numbers[5u];
+    let x_841 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_841;
+    let x_842 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_842;
+    let x_843 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_843;
+    let x_270 : f32 = color.x;
+    let x_844 : f32 = uv[0i];
+    uv[0i] = 0.0f;
+    uv[0i] = x_844;
+    let x_482 : vec3<f32> = vec3<f32>(x_455.x, x_475.y, x_455.y);
+    let x_845 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_845;
+    let x_846 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_846;
+    let x_847 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_847;
+    let x_483 : vec3<f32> = vec3<f32>(x_184.w, x_184.w, x_192.x);
+    let x_848 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_848;
+    color.x = (f32(x_267) + x_270);
+    let x_484 : vec3<f32> = vec3<f32>(x_454.y, x_450.x, x_454.y);
+    let x_849 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_849;
+  }
+  let x_850 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_850;
+  let x_485 : vec3<f32> = vec3<f32>(x_467.x, x_450.y, x_450.x);
+  let x_851 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_851;
+  let x_852 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_852;
+  let x_274 : f32 = uv.y;
+  let x_853 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_853;
+  if ((x_274 > 0.5f)) {
+    let x_854 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_854;
+    let x_486 : vec2<f32> = vec2<f32>(x_480.y, x_455.y);
+    let x_279 : ptr<private, i32> = &(obj.numbers[6u]);
+    let x_855 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_855;
+    let x_487 : vec2<f32> = vec2<f32>(x_449.z, x_449.y);
+    let x_856 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_856;
+    let x_280 : i32 = *(x_279);
+    let x_857 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_857;
+    let x_858 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_858;
+    let x_859 : i32 = *(x_253);
+    *(x_253) = 0i;
+    *(x_253) = x_859;
+    let x_488 : vec2<f32> = vec2<f32>(x_473.z, x_473.y);
+    let x_283 : f32 = color.y;
+    let x_860 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_860;
+    let x_861 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_861;
+    let x_489 : vec2<f32> = vec2<f32>(x_475.y, x_475.x);
+    let x_862 : i32 = *(x_279);
+    *(x_279) = 0i;
+    *(x_279) = x_862;
+    let x_863 : i32 = *(x_279);
+    *(x_279) = 0i;
+    *(x_279) = x_863;
+    let x_490 : vec2<f32> = vec2<f32>(x_480.z, x_480.z);
+    let x_864 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_864;
+    color.y = (f32(x_280) + x_283);
+    let x_865 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_865;
+    let x_491 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, x_454.x);
+    let x_866 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_866;
+  }
+  let x_492 : vec2<f32> = vec2<f32>(x_455.y, x_455.y);
+  let x_867 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_867;
+  let x_287 : f32 = uv.y;
+  let x_868 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_868;
+  let x_493 : vec2<f32> = vec2<f32>(x_475.x, x_475.y);
+  let x_869 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_869;
+  let x_870 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_870;
+  let x_494 : vec3<f32> = vec3<f32>(x_191.x, x_191.y, x_191.y);
+  let x_871 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_871;
+  if ((x_287 > 0.75f)) {
+    let x_872 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_872;
+    let x_873 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_873;
+    let x_495 : vec3<f32> = vec3<f32>(x_192.y, x_192.x, x_192.y);
+    let x_874 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_874;
+    let x_293 : i32 = obj.numbers[7i];
+    let x_875 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_875;
+    let x_496 : vec3<f32> = vec3<f32>(x_475.x, x_467.y, x_467.x);
+    let x_876 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_876;
+    let x_497 : vec2<f32> = vec2<f32>(x_477.x, x_461.y);
+    let x_877 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_877;
+    let x_878 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_878;
+    let x_498 : vec3<f32> = vec3<f32>(x_478.x, x_478.y, x_478.x);
+    let x_879 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_879;
+    let x_296 : f32 = color.z;
+    let x_880 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_880;
+    let x_499 : vec2<f32> = vec2<f32>(x_184.x, x_184.y);
+    let x_881 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_881;
+    let x_882 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_882;
+    let x_883 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_883;
+    let x_500 : vec3<f32> = vec3<f32>(x_499.y, x_499.y, x_494.z);
+    let x_884 : f32 = color.z;
+    color.z = 0.0f;
+    color.z = x_884;
+    color.z = (f32(x_293) + x_296);
+    let x_885 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_885;
+    let x_501 : vec2<f32> = vec2<f32>(x_453.x, x_453.z);
+    let x_886 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_886;
+  }
+  let x_887 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_887;
+  let x_502 : vec2<f32> = vec2<f32>(x_451.y, x_192.y);
+  let x_888 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_888;
+  let x_300 : ptr<private, i32> = &(obj.numbers[8i]);
+  let x_301 : i32 = *(x_300);
+  let x_889 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_889;
+  let x_503 : vec2<f32> = vec2<f32>(x_185.x, x_451.z);
+  let x_890 : i32 = *(x_300);
+  *(x_300) = 0i;
+  *(x_300) = x_890;
+  let x_891 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_891;
+  let x_504 : vec2<f32> = vec2<f32>(x_453.y, vec2<f32>().x);
+  let x_892 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_892;
+  let x_505 : vec3<f32> = vec3<f32>(x_504.x, x_504.y, x_504.x);
+  let x_893 : f32 = color.z;
+  color.z = 0.0f;
+  color.z = x_893;
+  let x_304 : f32 = color.z;
+  let x_894 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_894;
+  let x_506 : vec2<f32> = vec2<f32>(x_493.x, x_492.x);
+  let x_895 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_895;
+  let x_896 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_896;
+  let x_507 : vec2<f32> = vec2<f32>(x_461.x, x_447.x);
+  let x_897 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_897;
+  color.z = (x_304 + f32(x_301));
+  let x_898 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_898;
+  let x_899 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_899;
+  let x_508 : vec3<f32> = vec3<f32>(x_461.y, x_461.x, x_506.y);
+  let x_900 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_900;
+  let x_308 : f32 = uv.x;
+  let x_901 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_901;
+  let x_509 : vec3<f32> = vec3<f32>(x_503.y, x_503.x, x_448.z);
+  let x_902 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_902;
+  let x_310 : f32 = uv.y;
+  let x_903 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_903;
+  let x_904 : f32 = color.z;
+  color.z = 0.0f;
+  color.z = x_904;
+  let x_510 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, x_485.y, x_485.z);
+  let x_905 : f32 = color.z;
+  color.z = 0.0f;
+  color.z = x_905;
+  let x_906 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_906;
+  let x_511 : vec2<f32> = vec2<f32>(x_485.z, x_485.y);
+  let x_907 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_907;
+  let x_908 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_908;
+  let x_512 : vec3<f32> = vec3<f32>(x_455.y, x_455.y, x_455.y);
+  let x_909 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_909;
+  if ((abs((x_308 - x_310)) < 0.25f)) {
+    let x_910 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_910;
+    let x_911 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_911;
+    let x_513 : vec3<f32> = vec3<f32>(x_505.z, x_505.x, x_448.x);
+    let x_912 : i32 = *(x_300);
+    *(x_300) = 0i;
+    *(x_300) = x_912;
+    let x_317 : i32 = obj.numbers[9u];
+    let x_514 : vec3<f32> = vec3<f32>(x_474.y, x_474.y, x_474.y);
+    let x_913 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_913;
+    let x_320 : f32 = color.x;
+    let x_914 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_914;
+    let x_515 : vec2<f32> = vec2<f32>(x_502.x, x_502.y);
+    let x_915 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_915;
+    let x_916 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_916;
+    let x_516 : vec2<f32> = vec2<f32>(x_452.x, x_452.x);
+    let x_917 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_917;
+    let x_918 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_918;
+    let x_517 : vec3<f32> = vec3<f32>(vec2<f32>().x, vec2<f32>().x, vec2<f32>().y);
+    color.x = (f32(x_317) + x_320);
+    let x_919 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_919;
+    let x_518 : vec3<f32> = vec3<f32>(x_480.y, x_508.x, x_480.x);
+    let x_920 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_920;
+  }
+  let x_921 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_921;
+  let x_325 : vec3<f32> = color;
+  let x_922 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_922;
+  let x_519 : vec3<f32> = vec3<f32>(x_447.x, x_446.x, x_446.y);
+  let x_326 : vec3<f32> = normalize(x_325);
+  let x_923 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_923;
+  let x_924 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_924;
+  let x_925 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_925;
+  let x_926 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_926;
+  let x_520 : vec2<f32> = vec2<f32>(x_506.y, x_519.y);
+  let x_927 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_927;
+  let x_330 : vec4<f32> = vec4<f32>(x_326.x, x_326.y, x_326.z, 1.0f);
+  let x_928 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_928;
+  let x_521 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).y, x_520.y);
+  let x_929 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_929;
+  x_GLF_color = x_330;
+  let x_930 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_930;
+  let x_522 : vec3<f32> = vec3<f32>(x_330.w, x_330.y, x_493.x);
+  let x_931 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_931;
+  return;
+}
+
+struct main_out {
+  @location(0)
+  x_GLF_color_1 : vec4<f32>,
+}
+
+@fragment
+fn main(@builtin(position) gl_FragCoord_param : vec4<f32>) -> main_out {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  return main_out(x_GLF_color);
+}
+
+error: function-scope 'var' must have a constructible type
diff --git a/test/tint/bug/tint/749.spvasm.expected.spvasm b/test/tint/bug/tint/749.spvasm.expected.spvasm
index 149037e..2c170a6 100644
--- a/test/tint/bug/tint/749.spvasm.expected.spvasm
+++ b/test/tint/bug/tint/749.spvasm.expected.spvasm
@@ -1 +1,1495 @@
-SKIP: triggers crbug.com/tint/98
+SKIP: FAILED
+
+
+struct QuicksortObject {
+  numbers : array<i32, 10u>,
+}
+
+struct buf0 {
+  /* @offset(0) */
+  resolution : vec2<f32>,
+}
+
+var<private> obj : QuicksortObject;
+
+var<private> gl_FragCoord : vec4<f32>;
+
+@group(0) @binding(0) var<uniform> x_188 : buf0;
+
+var<private> x_GLF_color : vec4<f32>;
+
+fn swap_i1_i1_(i : ptr<function, i32>, j : ptr<function, i32>) {
+  var temp : i32;
+  let x_932 : i32 = temp;
+  temp = 0i;
+  temp = x_932;
+  let x_523 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+  let x_933 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_933;
+  let x_28 : i32 = *(i);
+  let x_934 : i32 = *(j);
+  *(j) = 0i;
+  *(j) = x_934;
+  let x_524 : vec3<f32> = vec3<f32>(x_523.y, x_523.x, x_523.y);
+  let x_935 : i32 = temp;
+  temp = 0i;
+  temp = x_935;
+  let x_30 : ptr<private, i32> = &(obj.numbers[x_28]);
+  let x_936 : i32 = *(x_30);
+  *(x_30) = 0i;
+  *(x_30) = x_936;
+  let x_31 : i32 = *(x_30);
+  let x_937 : i32 = temp;
+  temp = 0i;
+  temp = x_937;
+  temp = x_31;
+  let x_938 : i32 = *(j);
+  *(j) = 0i;
+  *(j) = x_938;
+  let x_525 : vec3<f32> = vec3<f32>(x_523.z, vec3<f32>(1.0f, 2.0f, 3.0f).x, x_523.y);
+  let x_939 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_939;
+  let x_32 : i32 = *(i);
+  let x_940 : i32 = *(x_30);
+  *(x_30) = 0i;
+  *(x_30) = x_940;
+  let x_33 : i32 = *(j);
+  let x_941 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_941;
+  let x_526 : vec3<f32> = vec3<f32>(x_525.x, x_525.z, x_525.z);
+  let x_942 : i32 = *(x_30);
+  *(x_30) = 0i;
+  *(x_30) = x_942;
+  let x_34 : ptr<private, i32> = &(obj.numbers[x_33]);
+  let x_35 : i32 = *(x_34);
+  let x_943 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_943;
+  let x_527 : vec2<f32> = vec2<f32>(x_526.x, x_526.x);
+  let x_36 : ptr<private, i32> = &(obj.numbers[x_32]);
+  let x_528 : vec3<f32> = vec3<f32>(x_524.x, x_524.z, x_524.x);
+  *(x_36) = x_35;
+  let x_944 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_944;
+  let x_529 : vec3<f32> = vec3<f32>(x_526.y, x_526.z, x_526.x);
+  let x_945 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_945;
+  let x_37 : i32 = *(j);
+  let x_946 : i32 = temp;
+  temp = 0i;
+  temp = x_946;
+  let x_530 : vec2<f32> = vec2<f32>(x_529.z, x_529.y);
+  let x_947 : i32 = *(x_34);
+  *(x_34) = 0i;
+  *(x_34) = x_947;
+  let x_38 : i32 = temp;
+  let x_948 : i32 = *(j);
+  *(j) = 0i;
+  *(j) = x_948;
+  let x_531 : vec3<f32> = vec3<f32>(x_527.x, x_526.y, x_526.x);
+  let x_949 : i32 = *(x_36);
+  *(x_36) = 0i;
+  *(x_36) = x_949;
+  let x_950 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_950;
+  let x_532 : vec3<f32> = vec3<f32>(x_528.x, x_528.y, x_528.x);
+  let x_951 : i32 = *(x_34);
+  *(x_34) = 0i;
+  *(x_34) = x_951;
+  obj.numbers[x_37] = x_38;
+  return;
+}
+
+fn performPartition_i1_i1_(l : ptr<function, i32>, h : ptr<function, i32>) -> i32 {
+  var param_3 : i32;
+  var i_1 : i32;
+  var j_1 : i32;
+  var param_2 : i32;
+  var param_1 : i32;
+  var param : i32;
+  var pivot : i32;
+  var x_537 : vec2<f32>;
+  var x_538 : vec3<f32>;
+  let x_952 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_952;
+  let x_41 : i32 = *(h);
+  let x_953 : i32 = *(l);
+  *(l) = 0i;
+  *(l) = x_953;
+  let x_42 : ptr<private, i32> = &(obj.numbers[x_41]);
+  let x_954 : i32 = *(x_42);
+  *(x_42) = 0i;
+  *(x_42) = x_954;
+  let x_43 : i32 = *(x_42);
+  let x_955 : i32 = param_3;
+  param_3 = 0i;
+  param_3 = x_955;
+  let x_534 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+  let x_956 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_956;
+  pivot = x_43;
+  let x_45 : i32 = *(l);
+  let x_957 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_957;
+  let x_958 : i32 = j_1;
+  j_1 = 0i;
+  j_1 = x_958;
+  let x_535 : vec3<f32> = vec3<f32>(x_534.y, x_534.z, x_534.y);
+  let x_959 : i32 = *(l);
+  *(l) = 0i;
+  *(l) = x_959;
+  i_1 = (x_45 - bitcast<i32>(1u));
+  let x_49 : i32 = *(l);
+  let x_536 : vec3<f32> = vec3<f32>(x_534.x, x_534.z, x_535.x);
+  j_1 = 10i;
+  let x_960 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_960;
+  loop {
+    var x_61 : ptr<private, i32>;
+    var x_539 : vec3<f32>;
+    var x_541 : vec3<f32>;
+    let x_961 : i32 = pivot;
+    pivot = 0i;
+    pivot = x_961;
+    let x_962 : i32 = param_1;
+    param_1 = 0i;
+    param_1 = x_962;
+    let x_55 : i32 = j_1;
+    let x_963 : i32 = pivot;
+    pivot = 0i;
+    pivot = x_963;
+    x_537 = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+    let x_964 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_964;
+    let x_56 : i32 = *(h);
+    let x_965 : i32 = *(h);
+    *(h) = 0i;
+    *(h) = x_965;
+    let x_966 : i32 = param;
+    param = 0i;
+    param = x_966;
+    let x_967 : i32 = j_1;
+    j_1 = 0i;
+    j_1 = x_967;
+    x_538 = vec3<f32>(x_534.x, x_537.y, x_534.z);
+    let x_968 : i32 = param;
+    param = 0i;
+    param = x_968;
+    if ((x_55 <= (x_56 - bitcast<i32>(1u)))) {
+    } else {
+      break;
+    }
+    let x_60 : i32 = j_1;
+    let x_969 : i32 = *(x_42);
+    *(x_42) = 0i;
+    *(x_42) = x_969;
+    x_61 = obj.numbers[x_60];
+    let x_970 : i32 = *(h);
+    *(h) = 0i;
+    *(h) = x_970;
+    x_539 = vec3<f32>(x_537.x, x_535.z, x_537.x);
+    let x_971 : i32 = param_1;
+    param_1 = 0i;
+    param_1 = x_971;
+    let x_62 : ptr<undefined, i32> = x_61;
+    let x_972 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_972;
+    let x_63 : i32 = pivot;
+    let x_540 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, x_534.z);
+    let x_973 : i32 = i_1;
+    i_1 = 0i;
+    i_1 = x_973;
+    let x_974 : i32 = *(l);
+    *(l) = 0i;
+    *(l) = x_974;
+    x_541 = vec3<f32>(x_534.y, x_534.x, x_534.y);
+    let x_975 : i32 = pivot;
+    pivot = 0i;
+    pivot = x_975;
+    if ((x_62 <= x_63)) {
+      let x_542 : vec3<f32> = vec3<f32>(x_541.z, x_541.x, x_541.x);
+      let x_976 : i32 = param_3;
+      param_3 = 0i;
+      param_3 = x_976;
+      let x_67 : i32 = i_1;
+      let x_977 : i32 = pivot;
+      pivot = 0i;
+      pivot = x_977;
+      let x_543 : vec2<f32> = vec2<f32>(x_539.x, x_541.y);
+      let x_978 : i32 = i_1;
+      i_1 = 0i;
+      i_1 = x_978;
+      let x_979 : i32 = param;
+      param = 0i;
+      param = x_979;
+      i_1 = (x_67 + bitcast<i32>(1u));
+      let x_980 : i32 = *(l);
+      *(l) = 0i;
+      *(l) = x_980;
+      let x_544 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).y, x_540.x);
+      let x_70 : i32 = i_1;
+      let x_545 : vec2<f32> = vec2<f32>(x_537.y, x_538.x);
+      let x_981 : i32 = param;
+      param = 0i;
+      param = x_981;
+      param = x_70;
+      let x_982 : i32 = param;
+      param = 0i;
+      param = x_982;
+      let x_546 : vec2<f32> = vec2<f32>(x_545.x, x_545.x);
+      let x_983 : i32 = i_1;
+      i_1 = 0i;
+      i_1 = x_983;
+      let x_72 : i32 = j_1;
+      param_1 = x_72;
+      let x_984 : i32 = param_3;
+      param_3 = 0i;
+      param_3 = x_984;
+      swap_i1_i1_(&(param), &(param_1));
+      let x_985 : i32 = param_1;
+      param_1 = 0i;
+      param_1 = x_985;
+    }
+    let x_986 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_986;
+
+    continuing {
+      let x_987 : i32 = *(h);
+      *(h) = 0i;
+      *(h) = x_987;
+      let x_74 : i32 = j_1;
+      let x_988 : i32 = *(h);
+      *(h) = 0i;
+      *(h) = x_988;
+      let x_547 : vec3<f32> = vec3<f32>(x_539.x, x_541.z, x_541.z);
+      let x_989 : ptr<undefined, i32> = x_61;
+      x_61 = 0i;
+      x_61 = x_989;
+      let x_990 : i32 = param;
+      param = 0i;
+      param = x_990;
+      j_1 = (1i + x_74);
+      let x_991 : i32 = param_1;
+      param_1 = 0i;
+      param_1 = x_991;
+      let x_548 : vec3<f32> = vec3<f32>(x_541.y, x_541.z, x_541.x);
+      let x_992 : ptr<undefined, i32> = x_61;
+      x_61 = 0i;
+      x_61 = x_992;
+    }
+  }
+  let x_76 : i32 = i_1;
+  let x_993 : i32 = *(x_42);
+  *(x_42) = 0i;
+  *(x_42) = x_993;
+  let x_549 : vec2<f32> = vec2<f32>(x_534.x, x_534.y);
+  let x_994 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_994;
+  let x_995 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_995;
+  i_1 = (1i + x_76);
+  let x_996 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_996;
+  let x_79 : i32 = i_1;
+  let x_997 : i32 = j_1;
+  j_1 = 0i;
+  j_1 = x_997;
+  let x_550 : vec2<f32> = vec2<f32>(x_534.x, x_534.x);
+  let x_998 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_998;
+  param_2 = x_79;
+  let x_551 : vec2<f32> = vec2<f32>(x_534.y, x_536.x);
+  let x_999 : i32 = pivot;
+  pivot = 0i;
+  pivot = x_999;
+  let x_81 : i32 = *(h);
+  let x_552 : vec2<f32> = vec2<f32>(x_550.x, x_549.y);
+  let x_1000 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_1000;
+  param_3 = x_81;
+  let x_1001 : i32 = i_1;
+  i_1 = 0i;
+  i_1 = x_1001;
+  let x_553 : vec2<f32> = vec2<f32>(x_549.y, x_552.x);
+  let x_1002 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_1002;
+  swap_i1_i1_(&(param_2), &(param_3));
+  let x_1003 : i32 = *(l);
+  *(l) = 0i;
+  *(l) = x_1003;
+  let x_554 : vec2<f32> = vec2<f32>(x_536.z, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_1004 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_1004;
+  let x_83 : i32 = i_1;
+  let x_1005 : i32 = param;
+  param = 0i;
+  param = x_1005;
+  let x_555 : vec2<f32> = vec2<f32>(x_534.y, x_534.x);
+  let x_1006 : i32 = j_1;
+  j_1 = 0i;
+  j_1 = x_1006;
+  return x_83;
+}
+
+fn quicksort_() {
+  var param_4 : i32;
+  var h_1 : i32;
+  var p : i32;
+  var l_1 : i32;
+  var top : i32;
+  var stack : array<i32, 10u>;
+  var param_5 : i32;
+  l_1 = 0i;
+  let x_1007 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1007;
+  h_1 = 9i;
+  let x_1008 : array<i32, 10u> = stack;
+  stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+  stack = x_1008;
+  let x_556 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_1009 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1009;
+  top = -1i;
+  let x_1010 : i32 = p;
+  p = 0i;
+  p = x_1010;
+  let x_93 : i32 = top;
+  let x_557 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).x);
+  let x_1011 : i32 = p;
+  p = 0i;
+  p = x_1011;
+  let x_94 : i32 = (x_93 + bitcast<i32>(1u));
+  let x_1012 : i32 = top;
+  top = 0i;
+  top = x_1012;
+  let x_558 : vec2<f32> = vec2<f32>(x_556.y, x_557.y);
+  let x_1013 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1013;
+  top = x_94;
+  let x_1014 : i32 = h_1;
+  h_1 = 0i;
+  h_1 = x_1014;
+  let x_559 : vec3<f32> = vec3<f32>(x_557.y, x_557.x, x_557.x);
+  let x_1015 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1015;
+  let x_95 : i32 = l_1;
+  let x_1016 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_1016;
+  let x_560 : vec3<f32> = vec3<f32>(x_559.y, x_559.x, x_557.x);
+  let x_96 : ptr<function, i32> = &(stack[x_94]);
+  let x_1017 : array<i32, 10u> = stack;
+  stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+  stack = x_1017;
+  let x_561 : vec3<f32> = vec3<f32>(x_556.y, x_556.y, x_556.y);
+  let x_1018 : i32 = l_1;
+  l_1 = 0i;
+  l_1 = 0i;
+  *(x_96) = x_95;
+  let x_1019 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1019;
+  let x_97 : i32 = top;
+  let x_1020 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1020;
+  let x_562 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, x_558.y, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_1021 : i32 = *(x_96);
+  *(x_96) = 0i;
+  *(x_96) = x_1021;
+  let x_98 : i32 = (x_97 + 1i);
+  let x_1022 : i32 = *(x_96);
+  *(x_96) = 0i;
+  *(x_96) = x_1022;
+  let x_563 : vec3<f32> = vec3<f32>(x_559.x, x_559.z, x_556.y);
+  top = x_98;
+  let x_1023 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1023;
+  let x_99 : i32 = h_1;
+  let x_1024 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1024;
+  let x_564 : vec3<f32> = vec3<f32>(x_558.x, x_561.x, x_558.y);
+  let x_1025 : i32 = l_1;
+  l_1 = 0i;
+  l_1 = x_1025;
+  let x_100 : ptr<function, i32> = &(stack[x_98]);
+  let x_1026 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1026;
+  let x_565 : vec2<f32> = vec2<f32>(x_564.z, x_564.z);
+  let x_1027 : i32 = p;
+  p = 0i;
+  p = x_1027;
+  *(x_100) = x_99;
+  loop {
+    let x_566 : vec3<f32> = vec3<f32>(x_563.x, x_563.x, x_563.x);
+    let x_1028 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1028;
+    let x_1029 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1029;
+    let x_106 : i32 = top;
+    let x_1030 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1030;
+    let x_567 : vec2<f32> = vec2<f32>(x_558.x, x_564.z);
+    let x_1031 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1031;
+    if ((x_106 >= bitcast<i32>(0u))) {
+    } else {
+      break;
+    }
+    let x_1032 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_1032;
+    let x_568 : vec3<f32> = vec3<f32>(x_559.y, x_559.x, x_563.y);
+    let x_1033 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1033;
+    let x_108 : i32 = top;
+    let x_569 : vec3<f32> = vec3<f32>(x_565.x, x_567.y, x_565.x);
+    let x_1034 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1034;
+    let x_570 : vec2<f32> = vec2<f32>(x_556.x, x_556.x);
+    let x_1035 : i32 = p;
+    p = 0i;
+    p = x_1035;
+    top = (x_108 - bitcast<i32>(1u));
+    let x_1036 : i32 = p;
+    p = 0i;
+    p = x_1036;
+    let x_110 : ptr<function, i32> = &(stack[x_108]);
+    let x_1037 : i32 = *(x_96);
+    *(x_96) = 0i;
+    *(x_96) = x_1037;
+    let x_111 : i32 = *(x_110);
+    let x_1038 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1038;
+    let x_571 : vec3<f32> = vec3<f32>(x_559.y, x_559.x, x_564.y);
+    let x_1039 : i32 = l_1;
+    l_1 = 0i;
+    l_1 = x_1039;
+    h_1 = x_111;
+    let x_1040 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1040;
+    let x_572 : vec2<f32> = vec2<f32>(x_562.y, x_561.y);
+    let x_1041 : i32 = p;
+    p = 0i;
+    p = x_1041;
+    let x_112 : i32 = top;
+    let x_1042 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1042;
+    let x_1043 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1043;
+    let x_573 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+    top = (x_112 - 1i);
+    let x_1044 : i32 = param_5;
+    param_5 = 0i;
+    param_5 = x_1044;
+    let x_574 : vec3<f32> = vec3<f32>(x_570.y, x_565.x, x_570.y);
+    let x_1045 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1045;
+    let x_114 : ptr<function, i32> = &(stack[x_112]);
+    let x_575 : vec2<f32> = vec2<f32>(x_564.y, x_564.z);
+    let x_1046 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1046;
+    let x_115 : i32 = *(x_114);
+    let x_1047 : i32 = p;
+    p = 0i;
+    p = x_1047;
+    let x_576 : vec3<f32> = vec3<f32>(x_573.y, x_573.y, x_565.x);
+    let x_1048 : i32 = param_5;
+    param_5 = 0i;
+    param_5 = x_1048;
+    l_1 = x_115;
+    let x_1049 : i32 = top;
+    top = 0i;
+    top = x_1049;
+    let x_118 : i32 = l_1;
+    param_4 = x_118;
+    let x_1050 : i32 = *(x_110);
+    *(x_110) = 0i;
+    *(x_110) = x_1050;
+    let x_577 : vec2<f32> = vec2<f32>(x_569.y, x_569.z);
+    let x_120 : i32 = h_1;
+    let x_578 : vec2<f32> = vec2<f32>(x_558.x, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+    param_5 = x_120;
+    let x_1051 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1051;
+    let x_121 : i32 = performPartition_i1_i1_(&(param_4), &(param_5));
+    let x_579 : vec2<f32> = vec2<f32>(x_567.x, x_568.x);
+    let x_1052 : i32 = param_5;
+    param_5 = 0i;
+    param_5 = x_1052;
+    p = x_121;
+    let x_1053 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1053;
+    let x_122 : i32 = p;
+    let x_1054 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1054;
+    let x_580 : vec2<f32> = vec2<f32>(x_568.y, x_568.y);
+    let x_1055 : i32 = l_1;
+    l_1 = 0i;
+    l_1 = x_1055;
+    let x_1056 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1056;
+    let x_124 : i32 = l_1;
+    let x_1057 : i32 = *(x_110);
+    *(x_110) = 0i;
+    *(x_110) = x_1057;
+    let x_1058 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1058;
+    let x_582 : vec2<f32> = vec2<f32>(x_567.y, x_573.x);
+    let x_1059 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1059;
+    if (((x_122 - bitcast<i32>(1u)) > x_124)) {
+      let x_1060 : i32 = param_4;
+      param_4 = 0i;
+      param_4 = x_1060;
+      let x_128 : i32 = top;
+      let x_583 : vec2<f32> = vec2<f32>(x_571.y, x_556.y);
+      let x_1061 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1061;
+      let x_1062 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1062;
+      let x_584 : vec2<f32> = vec2<f32>(x_569.z, x_569.y);
+      let x_585 : vec3<f32> = vec3<f32>(x_580.y, x_577.x, x_577.x);
+      let x_130 : i32 = l_1;
+      let x_1063 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1063;
+      let x_586 : vec2<f32> = vec2<f32>(x_564.x, x_585.x);
+      let x_1064 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1064;
+      let x_131 : ptr<function, i32> = &(stack[(1i + x_128)]);
+      let x_1065 : i32 = *(x_110);
+      *(x_110) = 0i;
+      *(x_110) = x_1065;
+      let x_587 : vec3<f32> = vec3<f32>(x_566.y, x_566.y, x_563.x);
+      let x_1066 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1066;
+      *(x_131) = x_130;
+      let x_132 : i32 = top;
+      let x_1067 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1067;
+      let x_588 : vec2<f32> = vec2<f32>(x_575.y, x_575.x);
+      let x_1068 : i32 = *(x_131);
+      *(x_131) = 0i;
+      *(x_131) = x_1068;
+      let x_133 : i32 = bitcast<i32>((1u + bitcast<u32>(x_132)));
+      let x_1069 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1069;
+      let x_589 : vec3<f32> = vec3<f32>(x_576.z, x_588.y, x_576.z);
+      let x_1070 : i32 = h_1;
+      h_1 = 0i;
+      h_1 = x_1070;
+      top = x_133;
+      let x_1071 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1071;
+      let x_134 : i32 = p;
+      let x_590 : vec2<f32> = vec2<f32>(x_576.x, x_573.y);
+      let x_1072 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1072;
+      let x_136 : ptr<function, i32> = &(stack[x_133]);
+      let x_1073 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1073;
+      *(x_136) = (x_134 - bitcast<i32>(1u));
+      let x_1074 : i32 = *(x_96);
+      *(x_96) = 0i;
+      *(x_96) = x_1074;
+      let x_591 : vec2<f32> = vec2<f32>(x_569.z, x_569.y);
+      let x_1075 : i32 = *(x_136);
+      *(x_136) = 0i;
+      *(x_136) = x_1075;
+    }
+    let x_1076 : i32 = *(x_96);
+    *(x_96) = 0i;
+    *(x_96) = x_1076;
+    let x_592 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+    let x_1077 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_1077;
+    let x_137 : i32 = p;
+    let x_1078 : i32 = *(x_114);
+    *(x_114) = 0i;
+    *(x_114) = x_1078;
+    let x_593 : vec3<f32> = vec3<f32>(x_571.z, x_556.x, x_556.y);
+    let x_1079 : i32 = p;
+    p = 0i;
+    p = x_1079;
+    let x_594 : vec3<f32> = vec3<f32>(x_563.z, x_563.x, x_575.x);
+    let x_1080 : i32 = *(x_114);
+    *(x_114) = 0i;
+    *(x_114) = x_1080;
+    let x_139 : i32 = h_1;
+    let x_1081 : i32 = top;
+    top = 0i;
+    top = x_1081;
+    let x_595 : vec3<f32> = vec3<f32>(x_560.z, x_568.x, x_560.x);
+    let x_1082 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1082;
+    let x_1083 : i32 = p;
+    p = 0i;
+    p = x_1083;
+    if ((bitcast<i32>((1u + bitcast<u32>(x_137))) < x_139)) {
+      let x_1084 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1084;
+      let x_596 : vec2<f32> = vec2<f32>(x_592.y, x_582.x);
+      let x_1085 : i32 = l_1;
+      l_1 = 0i;
+      l_1 = x_1085;
+      let x_143 : i32 = top;
+      let x_1086 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1086;
+      let x_597 : vec3<f32> = vec3<f32>(x_562.y, x_560.y, x_560.y);
+      let x_144 : i32 = (x_143 + 1i);
+      let x_1087 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1087;
+      top = x_144;
+      let x_1088 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1088;
+      let x_145 : i32 = p;
+      let x_1089 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1089;
+      let x_599 : vec3<f32> = vec3<f32>(x_560.z, x_560.x, x_568.x);
+      let x_1090 : i32 = p;
+      p = 0i;
+      p = x_1090;
+      let x_600 : vec3<f32> = vec3<f32>(x_556.x, x_580.x, x_580.x);
+      let x_1091 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1091;
+      let x_147 : ptr<function, i32> = &(stack[x_144]);
+      let x_1092 : i32 = *(x_110);
+      *(x_110) = 0i;
+      *(x_110) = x_1092;
+      let x_601 : vec2<f32> = vec2<f32>(x_563.x, x_563.y);
+      *(x_147) = bitcast<i32>((1u + bitcast<u32>(x_145)));
+      let x_1093 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1093;
+      let x_148 : i32 = top;
+      let x_1094 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1094;
+      let x_602 : vec2<f32> = vec2<f32>(x_565.y, x_599.y);
+      let x_1095 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1095;
+      let x_149 : i32 = (x_148 + bitcast<i32>(1u));
+      let x_1096 : i32 = *(x_147);
+      *(x_147) = 0i;
+      *(x_147) = x_1096;
+      top = x_149;
+      let x_1097 : i32 = param_4;
+      param_4 = 0i;
+      param_4 = x_1097;
+      let x_150 : i32 = h_1;
+      let x_1098 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1098;
+      let x_1099 : i32 = *(x_96);
+      *(x_96) = 0i;
+      *(x_96) = x_1099;
+      stack[x_149] = x_150;
+      let x_1100 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1100;
+      let x_603 : vec3<f32> = vec3<f32>(x_568.y, x_564.x, x_564.x);
+      let x_1101 : i32 = l_1;
+      l_1 = 0i;
+      l_1 = x_1101;
+    }
+    let x_1102 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1102;
+
+    continuing {
+      let x_1103 : i32 = l_1;
+      l_1 = 0i;
+      l_1 = x_1103;
+      let x_604 : vec2<f32> = vec2<f32>(x_563.z, x_564.x);
+      let x_1104 : QuicksortObject = obj;
+      obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+      obj = x_1104;
+    }
+  }
+  let x_1105 : i32 = h_1;
+  h_1 = 0i;
+  h_1 = x_1105;
+  return;
+}
+
+fn main_1() {
+  var color : vec3<f32>;
+  var i_2 : i32;
+  var uv : vec2<f32>;
+  let x_717 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_717;
+  i_2 = 0i;
+  let x_721 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_721;
+  if (true) {
+    let x_722 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_722;
+    let x_431 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).x);
+    let x_158 : i32 = i_2;
+    let x_723 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_723;
+    let x_725 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_725;
+    let x_432 : vec2<f32> = vec2<f32>(x_431.y, x_431.y);
+    let x_726 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_726;
+  }
+  let x_756 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_756;
+  let x_446 : vec2<f32> = vec2<f32>(vec2<f32>().x, vec2<f32>().x);
+  let x_757 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_757;
+  quicksort_();
+  let x_758 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_758;
+  let x_184 : vec4<f32> = gl_FragCoord;
+  let x_759 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_759;
+  let x_447 : vec2<f32> = vec2<f32>(vec2<f32>().y, vec2<f32>().y);
+  let x_760 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_760;
+  let x_185 : vec2<f32> = vec2<f32>(x_184.x, x_184.y);
+  let x_448 : vec3<f32> = vec3<f32>(x_185.y, x_446.y, x_446.y);
+  let x_761 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_761;
+  let x_762 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_762;
+  let x_191 : vec2<f32> = x_188.resolution;
+  let x_763 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_763;
+  let x_449 : vec3<f32> = vec3<f32>(x_184.y, vec3<f32>(1.0f, 2.0f, 3.0f).z, x_184.w);
+  let x_764 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_764;
+  let x_192 : vec2<f32> = (x_185 / x_191);
+  let x_765 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_765;
+  let x_450 : vec2<f32> = vec2<f32>(x_447.x, x_185.y);
+  let x_766 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  let x_767 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_767;
+  color = x_766;
+  uv = x_192;
+  color = vec3<f32>(1.0f, 2.0f, 3.0f);
+  let x_768 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_768;
+  let x_451 : vec3<f32> = vec3<f32>(x_185.x, x_185.y, x_446.y);
+  let x_769 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_769;
+  let x_200 : ptr<private, i32> = &(obj.numbers[0u]);
+  let x_770 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_770;
+  let x_201 : i32 = *(x_200);
+  let x_771 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_771;
+  let x_772 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_772;
+  let x_206 : f32 = color.x;
+  let x_773 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_773;
+  let x_452 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_774 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_774;
+  let x_775 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_775;
+  let x_453 : vec3<f32> = vec3<f32>(x_451.x, x_450.x, x_450.y);
+  color.x = (x_206 + f32(x_201));
+  let x_776 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_776;
+  let x_777 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_777;
+  let x_454 : vec2<f32> = vec2<f32>(x_184.y, x_184.y);
+  let x_210 : f32 = uv.x;
+  let x_455 : vec2<f32> = vec2<f32>(x_192.y, x_192.x);
+  let x_778 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_778;
+  let x_779 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_779;
+  if ((x_210 > 0.25f)) {
+    let x_780 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_780;
+    let x_781 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_781;
+    let x_456 : vec3<f32> = vec3<f32>(vec2<f32>().y, x_448.y, x_448.y);
+    let x_782 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_782;
+    let x_216 : i32 = obj.numbers[1i];
+    let x_783 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_783;
+    let x_457 : vec2<f32> = vec2<f32>(x_454.x, x_454.x);
+    let x_784 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_784;
+    let x_785 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_785;
+    let x_458 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec2<f32>().y);
+    let x_786 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_786;
+    let x_219 : f32 = color[0i];
+    let x_787 : f32 = color[0i];
+    color[0i] = 0.0f;
+    color[0i] = x_787;
+    let x_788 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_788;
+    let x_789 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_789;
+    let x_459 : vec3<f32> = vec3<f32>(x_454.y, x_454.y, x_447.y);
+    let x_790 : f32 = color[0i];
+    color[0i] = 0.0f;
+    color[0i] = x_790;
+    color.x = (f32(x_216) + x_219);
+    let x_791 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_791;
+  }
+  let x_792 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_792;
+  let x_793 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_793;
+  let x_223 : f32 = uv.x;
+  let x_794 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_794;
+  let x_460 : vec3<f32> = vec3<f32>(x_453.z, x_453.y, x_453.y);
+  let x_795 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_795;
+  let x_796 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_796;
+  let x_461 : vec2<f32> = vec2<f32>(vec2<f32>().y, vec2<f32>().y);
+  let x_797 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_797;
+  if ((x_223 > 0.5f)) {
+    let x_798 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_798;
+    let x_462 : vec2<f32> = vec2<f32>(x_446.x, x_446.x);
+    let x_799 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_799;
+    let x_229 : ptr<private, i32> = &(obj.numbers[2u]);
+    let x_800 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_800;
+    let x_463 : vec3<f32> = vec3<f32>(x_453.x, x_453.z, x_461.y);
+    let x_801 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_801;
+    let x_230 : i32 = *(x_229);
+    let x_802 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_802;
+    let x_803 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_803;
+    let x_804 : i32 = *(x_229);
+    *(x_229) = 0i;
+    *(x_229) = x_804;
+    let x_464 : vec2<f32> = vec2<f32>(x_450.y, x_191.x);
+    let x_805 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_805;
+    let x_234 : f32 = color.y;
+    let x_806 : i32 = *(x_229);
+    *(x_229) = 0i;
+    *(x_229) = x_806;
+    let x_465 : vec2<f32> = vec2<f32>(x_463.x, x_185.x);
+    let x_807 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_807;
+    let x_808 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_808;
+    let x_466 : vec2<f32> = vec2<f32>(x_455.y, vec2<f32>().y);
+    let x_809 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_809;
+    color.y = (f32(x_230) + x_234);
+    let x_810 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_810;
+  }
+  let x_811 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_811;
+  let x_467 : vec2<f32> = vec2<f32>(x_191.x, x_191.x);
+  let x_812 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_812;
+  let x_238 : f32 = uv[0i];
+  let x_813 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_813;
+  let x_814 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_814;
+  if ((x_238 > 0.75f)) {
+    let x_815 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_815;
+    let x_245 : i32 = obj.numbers[3i];
+    let x_816 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_816;
+    let x_817 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_817;
+    let x_468 : vec3<f32> = vec3<f32>(x_467.x, x_467.x, x_467.x);
+    let x_818 : f32 = uv[0i];
+    uv[0i] = 0.0f;
+    uv[0i] = x_818;
+    let x_819 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_819;
+    let x_249 : f32 = color.z;
+    let x_820 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_820;
+    let x_469 : vec3<f32> = vec3<f32>(x_467.x, x_191.y, x_467.y);
+    let x_821 : f32 = color.z;
+    color.z = 0.0f;
+    color.z = x_821;
+    let x_822 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_822;
+    let x_470 : vec2<f32> = vec2<f32>(vec2<f32>().x, vec2<f32>().y);
+    let x_823 : f32 = color.z;
+    color.z = 0.0f;
+    color.z = x_823;
+    color.z = (x_249 + f32(x_245));
+    let x_824 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_824;
+    let x_471 : vec2<f32> = vec2<f32>(x_470.y, x_470.y);
+  }
+  let x_825 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_825;
+  let x_472 : vec3<f32> = vec3<f32>(x_454.x, x_454.y, x_454.y);
+  let x_253 : ptr<private, i32> = &(obj.numbers[4i]);
+  let x_254 : i32 = *(x_253);
+  let x_826 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_826;
+  let x_827 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_827;
+  let x_473 : vec3<f32> = vec3<f32>(x_446.y, x_453.x, x_453.x);
+  let x_828 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_828;
+  let x_474 : vec2<f32> = vec2<f32>(x_191.x, x_184.z);
+  let x_829 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_829;
+  let x_257 : f32 = color.y;
+  let x_830 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_830;
+  let x_475 : vec2<f32> = vec2<f32>(x_467.x, x_450.x);
+  let x_831 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_831;
+  let x_832 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_832;
+  let x_476 : vec2<f32> = vec2<f32>(x_451.z, x_460.y);
+  color.y = (x_257 + f32(x_254));
+  let x_477 : vec3<f32> = vec3<f32>(vec2<f32>().x, x_472.x, vec2<f32>().y);
+  let x_833 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_833;
+  let x_834 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_834;
+  let x_478 : vec2<f32> = vec2<f32>(x_472.x, x_472.y);
+  let x_835 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_835;
+  let x_261 : f32 = uv.y;
+  let x_836 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_836;
+  let x_479 : vec3<f32> = vec3<f32>(vec2<f32>().y, x_454.y, vec2<f32>().x);
+  let x_837 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_837;
+  let x_838 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_838;
+  let x_480 : vec3<f32> = vec3<f32>(x_446.x, x_446.x, vec2<f32>().y);
+  let x_839 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_839;
+  if ((x_261 > 0.25f)) {
+    let x_481 : vec2<f32> = vec2<f32>(x_447.x, x_480.z);
+    let x_840 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_840;
+    let x_267 : i32 = obj.numbers[5u];
+    let x_841 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_841;
+    let x_842 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_842;
+    let x_843 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_843;
+    let x_270 : f32 = color.x;
+    let x_844 : f32 = uv[0i];
+    uv[0i] = 0.0f;
+    uv[0i] = x_844;
+    let x_482 : vec3<f32> = vec3<f32>(x_455.x, x_475.y, x_455.y);
+    let x_845 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_845;
+    let x_846 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_846;
+    let x_847 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_847;
+    let x_483 : vec3<f32> = vec3<f32>(x_184.w, x_184.w, x_192.x);
+    let x_848 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_848;
+    color.x = (f32(x_267) + x_270);
+    let x_484 : vec3<f32> = vec3<f32>(x_454.y, x_450.x, x_454.y);
+    let x_849 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_849;
+  }
+  let x_850 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_850;
+  let x_485 : vec3<f32> = vec3<f32>(x_467.x, x_450.y, x_450.x);
+  let x_851 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_851;
+  let x_852 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_852;
+  let x_274 : f32 = uv.y;
+  let x_853 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_853;
+  if ((x_274 > 0.5f)) {
+    let x_854 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_854;
+    let x_486 : vec2<f32> = vec2<f32>(x_480.y, x_455.y);
+    let x_279 : ptr<private, i32> = &(obj.numbers[6u]);
+    let x_855 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_855;
+    let x_487 : vec2<f32> = vec2<f32>(x_449.z, x_449.y);
+    let x_856 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_856;
+    let x_280 : i32 = *(x_279);
+    let x_857 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_857;
+    let x_858 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_858;
+    let x_859 : i32 = *(x_253);
+    *(x_253) = 0i;
+    *(x_253) = x_859;
+    let x_488 : vec2<f32> = vec2<f32>(x_473.z, x_473.y);
+    let x_283 : f32 = color.y;
+    let x_860 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_860;
+    let x_861 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_861;
+    let x_489 : vec2<f32> = vec2<f32>(x_475.y, x_475.x);
+    let x_862 : i32 = *(x_279);
+    *(x_279) = 0i;
+    *(x_279) = x_862;
+    let x_863 : i32 = *(x_279);
+    *(x_279) = 0i;
+    *(x_279) = x_863;
+    let x_490 : vec2<f32> = vec2<f32>(x_480.z, x_480.z);
+    let x_864 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_864;
+    color.y = (f32(x_280) + x_283);
+    let x_865 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_865;
+    let x_491 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, x_454.x);
+    let x_866 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_866;
+  }
+  let x_492 : vec2<f32> = vec2<f32>(x_455.y, x_455.y);
+  let x_867 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_867;
+  let x_287 : f32 = uv.y;
+  let x_868 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_868;
+  let x_493 : vec2<f32> = vec2<f32>(x_475.x, x_475.y);
+  let x_869 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_869;
+  let x_870 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_870;
+  let x_494 : vec3<f32> = vec3<f32>(x_191.x, x_191.y, x_191.y);
+  let x_871 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_871;
+  if ((x_287 > 0.75f)) {
+    let x_872 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_872;
+    let x_873 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_873;
+    let x_495 : vec3<f32> = vec3<f32>(x_192.y, x_192.x, x_192.y);
+    let x_874 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_874;
+    let x_293 : i32 = obj.numbers[7i];
+    let x_875 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_875;
+    let x_496 : vec3<f32> = vec3<f32>(x_475.x, x_467.y, x_467.x);
+    let x_876 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_876;
+    let x_497 : vec2<f32> = vec2<f32>(x_477.x, x_461.y);
+    let x_877 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_877;
+    let x_878 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_878;
+    let x_498 : vec3<f32> = vec3<f32>(x_478.x, x_478.y, x_478.x);
+    let x_879 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_879;
+    let x_296 : f32 = color.z;
+    let x_880 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_880;
+    let x_499 : vec2<f32> = vec2<f32>(x_184.x, x_184.y);
+    let x_881 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_881;
+    let x_882 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_882;
+    let x_883 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_883;
+    let x_500 : vec3<f32> = vec3<f32>(x_499.y, x_499.y, x_494.z);
+    let x_884 : f32 = color.z;
+    color.z = 0.0f;
+    color.z = x_884;
+    color.z = (f32(x_293) + x_296);
+    let x_885 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_885;
+    let x_501 : vec2<f32> = vec2<f32>(x_453.x, x_453.z);
+    let x_886 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_886;
+  }
+  let x_887 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_887;
+  let x_502 : vec2<f32> = vec2<f32>(x_451.y, x_192.y);
+  let x_888 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_888;
+  let x_300 : ptr<private, i32> = &(obj.numbers[8i]);
+  let x_301 : i32 = *(x_300);
+  let x_889 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_889;
+  let x_503 : vec2<f32> = vec2<f32>(x_185.x, x_451.z);
+  let x_890 : i32 = *(x_300);
+  *(x_300) = 0i;
+  *(x_300) = x_890;
+  let x_891 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_891;
+  let x_504 : vec2<f32> = vec2<f32>(x_453.y, vec2<f32>().x);
+  let x_892 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_892;
+  let x_505 : vec3<f32> = vec3<f32>(x_504.x, x_504.y, x_504.x);
+  let x_893 : f32 = color.z;
+  color.z = 0.0f;
+  color.z = x_893;
+  let x_304 : f32 = color.z;
+  let x_894 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_894;
+  let x_506 : vec2<f32> = vec2<f32>(x_493.x, x_492.x);
+  let x_895 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_895;
+  let x_896 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_896;
+  let x_507 : vec2<f32> = vec2<f32>(x_461.x, x_447.x);
+  let x_897 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_897;
+  color.z = (x_304 + f32(x_301));
+  let x_898 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_898;
+  let x_899 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_899;
+  let x_508 : vec3<f32> = vec3<f32>(x_461.y, x_461.x, x_506.y);
+  let x_900 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_900;
+  let x_308 : f32 = uv.x;
+  let x_901 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_901;
+  let x_509 : vec3<f32> = vec3<f32>(x_503.y, x_503.x, x_448.z);
+  let x_902 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_902;
+  let x_310 : f32 = uv.y;
+  let x_903 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_903;
+  let x_904 : f32 = color.z;
+  color.z = 0.0f;
+  color.z = x_904;
+  let x_510 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, x_485.y, x_485.z);
+  let x_905 : f32 = color.z;
+  color.z = 0.0f;
+  color.z = x_905;
+  let x_906 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_906;
+  let x_511 : vec2<f32> = vec2<f32>(x_485.z, x_485.y);
+  let x_907 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_907;
+  let x_908 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_908;
+  let x_512 : vec3<f32> = vec3<f32>(x_455.y, x_455.y, x_455.y);
+  let x_909 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_909;
+  if ((abs((x_308 - x_310)) < 0.25f)) {
+    let x_910 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_910;
+    let x_911 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_911;
+    let x_513 : vec3<f32> = vec3<f32>(x_505.z, x_505.x, x_448.x);
+    let x_912 : i32 = *(x_300);
+    *(x_300) = 0i;
+    *(x_300) = x_912;
+    let x_317 : i32 = obj.numbers[9u];
+    let x_514 : vec3<f32> = vec3<f32>(x_474.y, x_474.y, x_474.y);
+    let x_913 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_913;
+    let x_320 : f32 = color.x;
+    let x_914 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_914;
+    let x_515 : vec2<f32> = vec2<f32>(x_502.x, x_502.y);
+    let x_915 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_915;
+    let x_916 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_916;
+    let x_516 : vec2<f32> = vec2<f32>(x_452.x, x_452.x);
+    let x_917 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_917;
+    let x_918 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_918;
+    let x_517 : vec3<f32> = vec3<f32>(vec2<f32>().x, vec2<f32>().x, vec2<f32>().y);
+    color.x = (f32(x_317) + x_320);
+    let x_919 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_919;
+    let x_518 : vec3<f32> = vec3<f32>(x_480.y, x_508.x, x_480.x);
+    let x_920 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_920;
+  }
+  let x_921 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_921;
+  let x_325 : vec3<f32> = color;
+  let x_922 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_922;
+  let x_519 : vec3<f32> = vec3<f32>(x_447.x, x_446.x, x_446.y);
+  let x_326 : vec3<f32> = normalize(x_325);
+  let x_923 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_923;
+  let x_924 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_924;
+  let x_925 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_925;
+  let x_926 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_926;
+  let x_520 : vec2<f32> = vec2<f32>(x_506.y, x_519.y);
+  let x_927 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_927;
+  let x_330 : vec4<f32> = vec4<f32>(x_326.x, x_326.y, x_326.z, 1.0f);
+  let x_928 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_928;
+  let x_521 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).y, x_520.y);
+  let x_929 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_929;
+  x_GLF_color = x_330;
+  let x_930 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_930;
+  let x_522 : vec3<f32> = vec3<f32>(x_330.w, x_330.y, x_493.x);
+  let x_931 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_931;
+  return;
+}
+
+struct main_out {
+  @location(0)
+  x_GLF_color_1 : vec4<f32>,
+}
+
+@fragment
+fn main(@builtin(position) gl_FragCoord_param : vec4<f32>) -> main_out {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  return main_out(x_GLF_color);
+}
+
+error: function-scope 'var' must have a constructible type
diff --git a/test/tint/bug/tint/749.spvasm.expected.wgsl b/test/tint/bug/tint/749.spvasm.expected.wgsl
index 149037e..2c170a6 100644
--- a/test/tint/bug/tint/749.spvasm.expected.wgsl
+++ b/test/tint/bug/tint/749.spvasm.expected.wgsl
@@ -1 +1,1495 @@
-SKIP: triggers crbug.com/tint/98
+SKIP: FAILED
+
+
+struct QuicksortObject {
+  numbers : array<i32, 10u>,
+}
+
+struct buf0 {
+  /* @offset(0) */
+  resolution : vec2<f32>,
+}
+
+var<private> obj : QuicksortObject;
+
+var<private> gl_FragCoord : vec4<f32>;
+
+@group(0) @binding(0) var<uniform> x_188 : buf0;
+
+var<private> x_GLF_color : vec4<f32>;
+
+fn swap_i1_i1_(i : ptr<function, i32>, j : ptr<function, i32>) {
+  var temp : i32;
+  let x_932 : i32 = temp;
+  temp = 0i;
+  temp = x_932;
+  let x_523 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+  let x_933 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_933;
+  let x_28 : i32 = *(i);
+  let x_934 : i32 = *(j);
+  *(j) = 0i;
+  *(j) = x_934;
+  let x_524 : vec3<f32> = vec3<f32>(x_523.y, x_523.x, x_523.y);
+  let x_935 : i32 = temp;
+  temp = 0i;
+  temp = x_935;
+  let x_30 : ptr<private, i32> = &(obj.numbers[x_28]);
+  let x_936 : i32 = *(x_30);
+  *(x_30) = 0i;
+  *(x_30) = x_936;
+  let x_31 : i32 = *(x_30);
+  let x_937 : i32 = temp;
+  temp = 0i;
+  temp = x_937;
+  temp = x_31;
+  let x_938 : i32 = *(j);
+  *(j) = 0i;
+  *(j) = x_938;
+  let x_525 : vec3<f32> = vec3<f32>(x_523.z, vec3<f32>(1.0f, 2.0f, 3.0f).x, x_523.y);
+  let x_939 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_939;
+  let x_32 : i32 = *(i);
+  let x_940 : i32 = *(x_30);
+  *(x_30) = 0i;
+  *(x_30) = x_940;
+  let x_33 : i32 = *(j);
+  let x_941 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_941;
+  let x_526 : vec3<f32> = vec3<f32>(x_525.x, x_525.z, x_525.z);
+  let x_942 : i32 = *(x_30);
+  *(x_30) = 0i;
+  *(x_30) = x_942;
+  let x_34 : ptr<private, i32> = &(obj.numbers[x_33]);
+  let x_35 : i32 = *(x_34);
+  let x_943 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_943;
+  let x_527 : vec2<f32> = vec2<f32>(x_526.x, x_526.x);
+  let x_36 : ptr<private, i32> = &(obj.numbers[x_32]);
+  let x_528 : vec3<f32> = vec3<f32>(x_524.x, x_524.z, x_524.x);
+  *(x_36) = x_35;
+  let x_944 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_944;
+  let x_529 : vec3<f32> = vec3<f32>(x_526.y, x_526.z, x_526.x);
+  let x_945 : i32 = *(i);
+  *(i) = 0i;
+  *(i) = x_945;
+  let x_37 : i32 = *(j);
+  let x_946 : i32 = temp;
+  temp = 0i;
+  temp = x_946;
+  let x_530 : vec2<f32> = vec2<f32>(x_529.z, x_529.y);
+  let x_947 : i32 = *(x_34);
+  *(x_34) = 0i;
+  *(x_34) = x_947;
+  let x_38 : i32 = temp;
+  let x_948 : i32 = *(j);
+  *(j) = 0i;
+  *(j) = x_948;
+  let x_531 : vec3<f32> = vec3<f32>(x_527.x, x_526.y, x_526.x);
+  let x_949 : i32 = *(x_36);
+  *(x_36) = 0i;
+  *(x_36) = x_949;
+  let x_950 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_950;
+  let x_532 : vec3<f32> = vec3<f32>(x_528.x, x_528.y, x_528.x);
+  let x_951 : i32 = *(x_34);
+  *(x_34) = 0i;
+  *(x_34) = x_951;
+  obj.numbers[x_37] = x_38;
+  return;
+}
+
+fn performPartition_i1_i1_(l : ptr<function, i32>, h : ptr<function, i32>) -> i32 {
+  var param_3 : i32;
+  var i_1 : i32;
+  var j_1 : i32;
+  var param_2 : i32;
+  var param_1 : i32;
+  var param : i32;
+  var pivot : i32;
+  var x_537 : vec2<f32>;
+  var x_538 : vec3<f32>;
+  let x_952 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_952;
+  let x_41 : i32 = *(h);
+  let x_953 : i32 = *(l);
+  *(l) = 0i;
+  *(l) = x_953;
+  let x_42 : ptr<private, i32> = &(obj.numbers[x_41]);
+  let x_954 : i32 = *(x_42);
+  *(x_42) = 0i;
+  *(x_42) = x_954;
+  let x_43 : i32 = *(x_42);
+  let x_955 : i32 = param_3;
+  param_3 = 0i;
+  param_3 = x_955;
+  let x_534 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+  let x_956 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_956;
+  pivot = x_43;
+  let x_45 : i32 = *(l);
+  let x_957 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_957;
+  let x_958 : i32 = j_1;
+  j_1 = 0i;
+  j_1 = x_958;
+  let x_535 : vec3<f32> = vec3<f32>(x_534.y, x_534.z, x_534.y);
+  let x_959 : i32 = *(l);
+  *(l) = 0i;
+  *(l) = x_959;
+  i_1 = (x_45 - bitcast<i32>(1u));
+  let x_49 : i32 = *(l);
+  let x_536 : vec3<f32> = vec3<f32>(x_534.x, x_534.z, x_535.x);
+  j_1 = 10i;
+  let x_960 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_960;
+  loop {
+    var x_61 : ptr<private, i32>;
+    var x_539 : vec3<f32>;
+    var x_541 : vec3<f32>;
+    let x_961 : i32 = pivot;
+    pivot = 0i;
+    pivot = x_961;
+    let x_962 : i32 = param_1;
+    param_1 = 0i;
+    param_1 = x_962;
+    let x_55 : i32 = j_1;
+    let x_963 : i32 = pivot;
+    pivot = 0i;
+    pivot = x_963;
+    x_537 = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+    let x_964 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_964;
+    let x_56 : i32 = *(h);
+    let x_965 : i32 = *(h);
+    *(h) = 0i;
+    *(h) = x_965;
+    let x_966 : i32 = param;
+    param = 0i;
+    param = x_966;
+    let x_967 : i32 = j_1;
+    j_1 = 0i;
+    j_1 = x_967;
+    x_538 = vec3<f32>(x_534.x, x_537.y, x_534.z);
+    let x_968 : i32 = param;
+    param = 0i;
+    param = x_968;
+    if ((x_55 <= (x_56 - bitcast<i32>(1u)))) {
+    } else {
+      break;
+    }
+    let x_60 : i32 = j_1;
+    let x_969 : i32 = *(x_42);
+    *(x_42) = 0i;
+    *(x_42) = x_969;
+    x_61 = obj.numbers[x_60];
+    let x_970 : i32 = *(h);
+    *(h) = 0i;
+    *(h) = x_970;
+    x_539 = vec3<f32>(x_537.x, x_535.z, x_537.x);
+    let x_971 : i32 = param_1;
+    param_1 = 0i;
+    param_1 = x_971;
+    let x_62 : ptr<undefined, i32> = x_61;
+    let x_972 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_972;
+    let x_63 : i32 = pivot;
+    let x_540 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, x_534.z);
+    let x_973 : i32 = i_1;
+    i_1 = 0i;
+    i_1 = x_973;
+    let x_974 : i32 = *(l);
+    *(l) = 0i;
+    *(l) = x_974;
+    x_541 = vec3<f32>(x_534.y, x_534.x, x_534.y);
+    let x_975 : i32 = pivot;
+    pivot = 0i;
+    pivot = x_975;
+    if ((x_62 <= x_63)) {
+      let x_542 : vec3<f32> = vec3<f32>(x_541.z, x_541.x, x_541.x);
+      let x_976 : i32 = param_3;
+      param_3 = 0i;
+      param_3 = x_976;
+      let x_67 : i32 = i_1;
+      let x_977 : i32 = pivot;
+      pivot = 0i;
+      pivot = x_977;
+      let x_543 : vec2<f32> = vec2<f32>(x_539.x, x_541.y);
+      let x_978 : i32 = i_1;
+      i_1 = 0i;
+      i_1 = x_978;
+      let x_979 : i32 = param;
+      param = 0i;
+      param = x_979;
+      i_1 = (x_67 + bitcast<i32>(1u));
+      let x_980 : i32 = *(l);
+      *(l) = 0i;
+      *(l) = x_980;
+      let x_544 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).y, x_540.x);
+      let x_70 : i32 = i_1;
+      let x_545 : vec2<f32> = vec2<f32>(x_537.y, x_538.x);
+      let x_981 : i32 = param;
+      param = 0i;
+      param = x_981;
+      param = x_70;
+      let x_982 : i32 = param;
+      param = 0i;
+      param = x_982;
+      let x_546 : vec2<f32> = vec2<f32>(x_545.x, x_545.x);
+      let x_983 : i32 = i_1;
+      i_1 = 0i;
+      i_1 = x_983;
+      let x_72 : i32 = j_1;
+      param_1 = x_72;
+      let x_984 : i32 = param_3;
+      param_3 = 0i;
+      param_3 = x_984;
+      swap_i1_i1_(&(param), &(param_1));
+      let x_985 : i32 = param_1;
+      param_1 = 0i;
+      param_1 = x_985;
+    }
+    let x_986 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_986;
+
+    continuing {
+      let x_987 : i32 = *(h);
+      *(h) = 0i;
+      *(h) = x_987;
+      let x_74 : i32 = j_1;
+      let x_988 : i32 = *(h);
+      *(h) = 0i;
+      *(h) = x_988;
+      let x_547 : vec3<f32> = vec3<f32>(x_539.x, x_541.z, x_541.z);
+      let x_989 : ptr<undefined, i32> = x_61;
+      x_61 = 0i;
+      x_61 = x_989;
+      let x_990 : i32 = param;
+      param = 0i;
+      param = x_990;
+      j_1 = (1i + x_74);
+      let x_991 : i32 = param_1;
+      param_1 = 0i;
+      param_1 = x_991;
+      let x_548 : vec3<f32> = vec3<f32>(x_541.y, x_541.z, x_541.x);
+      let x_992 : ptr<undefined, i32> = x_61;
+      x_61 = 0i;
+      x_61 = x_992;
+    }
+  }
+  let x_76 : i32 = i_1;
+  let x_993 : i32 = *(x_42);
+  *(x_42) = 0i;
+  *(x_42) = x_993;
+  let x_549 : vec2<f32> = vec2<f32>(x_534.x, x_534.y);
+  let x_994 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_994;
+  let x_995 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_995;
+  i_1 = (1i + x_76);
+  let x_996 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_996;
+  let x_79 : i32 = i_1;
+  let x_997 : i32 = j_1;
+  j_1 = 0i;
+  j_1 = x_997;
+  let x_550 : vec2<f32> = vec2<f32>(x_534.x, x_534.x);
+  let x_998 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_998;
+  param_2 = x_79;
+  let x_551 : vec2<f32> = vec2<f32>(x_534.y, x_536.x);
+  let x_999 : i32 = pivot;
+  pivot = 0i;
+  pivot = x_999;
+  let x_81 : i32 = *(h);
+  let x_552 : vec2<f32> = vec2<f32>(x_550.x, x_549.y);
+  let x_1000 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_1000;
+  param_3 = x_81;
+  let x_1001 : i32 = i_1;
+  i_1 = 0i;
+  i_1 = x_1001;
+  let x_553 : vec2<f32> = vec2<f32>(x_549.y, x_552.x);
+  let x_1002 : i32 = *(h);
+  *(h) = 0i;
+  *(h) = x_1002;
+  swap_i1_i1_(&(param_2), &(param_3));
+  let x_1003 : i32 = *(l);
+  *(l) = 0i;
+  *(l) = x_1003;
+  let x_554 : vec2<f32> = vec2<f32>(x_536.z, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_1004 : i32 = param_1;
+  param_1 = 0i;
+  param_1 = x_1004;
+  let x_83 : i32 = i_1;
+  let x_1005 : i32 = param;
+  param = 0i;
+  param = x_1005;
+  let x_555 : vec2<f32> = vec2<f32>(x_534.y, x_534.x);
+  let x_1006 : i32 = j_1;
+  j_1 = 0i;
+  j_1 = x_1006;
+  return x_83;
+}
+
+fn quicksort_() {
+  var param_4 : i32;
+  var h_1 : i32;
+  var p : i32;
+  var l_1 : i32;
+  var top : i32;
+  var stack : array<i32, 10u>;
+  var param_5 : i32;
+  l_1 = 0i;
+  let x_1007 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1007;
+  h_1 = 9i;
+  let x_1008 : array<i32, 10u> = stack;
+  stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+  stack = x_1008;
+  let x_556 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_1009 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1009;
+  top = -1i;
+  let x_1010 : i32 = p;
+  p = 0i;
+  p = x_1010;
+  let x_93 : i32 = top;
+  let x_557 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).x);
+  let x_1011 : i32 = p;
+  p = 0i;
+  p = x_1011;
+  let x_94 : i32 = (x_93 + bitcast<i32>(1u));
+  let x_1012 : i32 = top;
+  top = 0i;
+  top = x_1012;
+  let x_558 : vec2<f32> = vec2<f32>(x_556.y, x_557.y);
+  let x_1013 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1013;
+  top = x_94;
+  let x_1014 : i32 = h_1;
+  h_1 = 0i;
+  h_1 = x_1014;
+  let x_559 : vec3<f32> = vec3<f32>(x_557.y, x_557.x, x_557.x);
+  let x_1015 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1015;
+  let x_95 : i32 = l_1;
+  let x_1016 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_1016;
+  let x_560 : vec3<f32> = vec3<f32>(x_559.y, x_559.x, x_557.x);
+  let x_96 : ptr<function, i32> = &(stack[x_94]);
+  let x_1017 : array<i32, 10u> = stack;
+  stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+  stack = x_1017;
+  let x_561 : vec3<f32> = vec3<f32>(x_556.y, x_556.y, x_556.y);
+  let x_1018 : i32 = l_1;
+  l_1 = 0i;
+  l_1 = 0i;
+  *(x_96) = x_95;
+  let x_1019 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1019;
+  let x_97 : i32 = top;
+  let x_1020 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1020;
+  let x_562 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, x_558.y, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_1021 : i32 = *(x_96);
+  *(x_96) = 0i;
+  *(x_96) = x_1021;
+  let x_98 : i32 = (x_97 + 1i);
+  let x_1022 : i32 = *(x_96);
+  *(x_96) = 0i;
+  *(x_96) = x_1022;
+  let x_563 : vec3<f32> = vec3<f32>(x_559.x, x_559.z, x_556.y);
+  top = x_98;
+  let x_1023 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1023;
+  let x_99 : i32 = h_1;
+  let x_1024 : i32 = param_4;
+  param_4 = 0i;
+  param_4 = x_1024;
+  let x_564 : vec3<f32> = vec3<f32>(x_558.x, x_561.x, x_558.y);
+  let x_1025 : i32 = l_1;
+  l_1 = 0i;
+  l_1 = x_1025;
+  let x_100 : ptr<function, i32> = &(stack[x_98]);
+  let x_1026 : i32 = param_5;
+  param_5 = 0i;
+  param_5 = x_1026;
+  let x_565 : vec2<f32> = vec2<f32>(x_564.z, x_564.z);
+  let x_1027 : i32 = p;
+  p = 0i;
+  p = x_1027;
+  *(x_100) = x_99;
+  loop {
+    let x_566 : vec3<f32> = vec3<f32>(x_563.x, x_563.x, x_563.x);
+    let x_1028 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1028;
+    let x_1029 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1029;
+    let x_106 : i32 = top;
+    let x_1030 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1030;
+    let x_567 : vec2<f32> = vec2<f32>(x_558.x, x_564.z);
+    let x_1031 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1031;
+    if ((x_106 >= bitcast<i32>(0u))) {
+    } else {
+      break;
+    }
+    let x_1032 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_1032;
+    let x_568 : vec3<f32> = vec3<f32>(x_559.y, x_559.x, x_563.y);
+    let x_1033 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1033;
+    let x_108 : i32 = top;
+    let x_569 : vec3<f32> = vec3<f32>(x_565.x, x_567.y, x_565.x);
+    let x_1034 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1034;
+    let x_570 : vec2<f32> = vec2<f32>(x_556.x, x_556.x);
+    let x_1035 : i32 = p;
+    p = 0i;
+    p = x_1035;
+    top = (x_108 - bitcast<i32>(1u));
+    let x_1036 : i32 = p;
+    p = 0i;
+    p = x_1036;
+    let x_110 : ptr<function, i32> = &(stack[x_108]);
+    let x_1037 : i32 = *(x_96);
+    *(x_96) = 0i;
+    *(x_96) = x_1037;
+    let x_111 : i32 = *(x_110);
+    let x_1038 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1038;
+    let x_571 : vec3<f32> = vec3<f32>(x_559.y, x_559.x, x_564.y);
+    let x_1039 : i32 = l_1;
+    l_1 = 0i;
+    l_1 = x_1039;
+    h_1 = x_111;
+    let x_1040 : array<i32, 10u> = stack;
+    stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+    stack = x_1040;
+    let x_572 : vec2<f32> = vec2<f32>(x_562.y, x_561.y);
+    let x_1041 : i32 = p;
+    p = 0i;
+    p = x_1041;
+    let x_112 : i32 = top;
+    let x_1042 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1042;
+    let x_1043 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1043;
+    let x_573 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).z);
+    top = (x_112 - 1i);
+    let x_1044 : i32 = param_5;
+    param_5 = 0i;
+    param_5 = x_1044;
+    let x_574 : vec3<f32> = vec3<f32>(x_570.y, x_565.x, x_570.y);
+    let x_1045 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1045;
+    let x_114 : ptr<function, i32> = &(stack[x_112]);
+    let x_575 : vec2<f32> = vec2<f32>(x_564.y, x_564.z);
+    let x_1046 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1046;
+    let x_115 : i32 = *(x_114);
+    let x_1047 : i32 = p;
+    p = 0i;
+    p = x_1047;
+    let x_576 : vec3<f32> = vec3<f32>(x_573.y, x_573.y, x_565.x);
+    let x_1048 : i32 = param_5;
+    param_5 = 0i;
+    param_5 = x_1048;
+    l_1 = x_115;
+    let x_1049 : i32 = top;
+    top = 0i;
+    top = x_1049;
+    let x_118 : i32 = l_1;
+    param_4 = x_118;
+    let x_1050 : i32 = *(x_110);
+    *(x_110) = 0i;
+    *(x_110) = x_1050;
+    let x_577 : vec2<f32> = vec2<f32>(x_569.y, x_569.z);
+    let x_120 : i32 = h_1;
+    let x_578 : vec2<f32> = vec2<f32>(x_558.x, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+    param_5 = x_120;
+    let x_1051 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1051;
+    let x_121 : i32 = performPartition_i1_i1_(&(param_4), &(param_5));
+    let x_579 : vec2<f32> = vec2<f32>(x_567.x, x_568.x);
+    let x_1052 : i32 = param_5;
+    param_5 = 0i;
+    param_5 = x_1052;
+    p = x_121;
+    let x_1053 : i32 = param_4;
+    param_4 = 0i;
+    param_4 = x_1053;
+    let x_122 : i32 = p;
+    let x_1054 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1054;
+    let x_580 : vec2<f32> = vec2<f32>(x_568.y, x_568.y);
+    let x_1055 : i32 = l_1;
+    l_1 = 0i;
+    l_1 = x_1055;
+    let x_1056 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1056;
+    let x_124 : i32 = l_1;
+    let x_1057 : i32 = *(x_110);
+    *(x_110) = 0i;
+    *(x_110) = x_1057;
+    let x_1058 : i32 = h_1;
+    h_1 = 0i;
+    h_1 = x_1058;
+    let x_582 : vec2<f32> = vec2<f32>(x_567.y, x_573.x);
+    let x_1059 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1059;
+    if (((x_122 - bitcast<i32>(1u)) > x_124)) {
+      let x_1060 : i32 = param_4;
+      param_4 = 0i;
+      param_4 = x_1060;
+      let x_128 : i32 = top;
+      let x_583 : vec2<f32> = vec2<f32>(x_571.y, x_556.y);
+      let x_1061 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1061;
+      let x_1062 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1062;
+      let x_584 : vec2<f32> = vec2<f32>(x_569.z, x_569.y);
+      let x_585 : vec3<f32> = vec3<f32>(x_580.y, x_577.x, x_577.x);
+      let x_130 : i32 = l_1;
+      let x_1063 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1063;
+      let x_586 : vec2<f32> = vec2<f32>(x_564.x, x_585.x);
+      let x_1064 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1064;
+      let x_131 : ptr<function, i32> = &(stack[(1i + x_128)]);
+      let x_1065 : i32 = *(x_110);
+      *(x_110) = 0i;
+      *(x_110) = x_1065;
+      let x_587 : vec3<f32> = vec3<f32>(x_566.y, x_566.y, x_563.x);
+      let x_1066 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1066;
+      *(x_131) = x_130;
+      let x_132 : i32 = top;
+      let x_1067 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1067;
+      let x_588 : vec2<f32> = vec2<f32>(x_575.y, x_575.x);
+      let x_1068 : i32 = *(x_131);
+      *(x_131) = 0i;
+      *(x_131) = x_1068;
+      let x_133 : i32 = bitcast<i32>((1u + bitcast<u32>(x_132)));
+      let x_1069 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1069;
+      let x_589 : vec3<f32> = vec3<f32>(x_576.z, x_588.y, x_576.z);
+      let x_1070 : i32 = h_1;
+      h_1 = 0i;
+      h_1 = x_1070;
+      top = x_133;
+      let x_1071 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1071;
+      let x_134 : i32 = p;
+      let x_590 : vec2<f32> = vec2<f32>(x_576.x, x_573.y);
+      let x_1072 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1072;
+      let x_136 : ptr<function, i32> = &(stack[x_133]);
+      let x_1073 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1073;
+      *(x_136) = (x_134 - bitcast<i32>(1u));
+      let x_1074 : i32 = *(x_96);
+      *(x_96) = 0i;
+      *(x_96) = x_1074;
+      let x_591 : vec2<f32> = vec2<f32>(x_569.z, x_569.y);
+      let x_1075 : i32 = *(x_136);
+      *(x_136) = 0i;
+      *(x_136) = x_1075;
+    }
+    let x_1076 : i32 = *(x_96);
+    *(x_96) = 0i;
+    *(x_96) = x_1076;
+    let x_592 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+    let x_1077 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_1077;
+    let x_137 : i32 = p;
+    let x_1078 : i32 = *(x_114);
+    *(x_114) = 0i;
+    *(x_114) = x_1078;
+    let x_593 : vec3<f32> = vec3<f32>(x_571.z, x_556.x, x_556.y);
+    let x_1079 : i32 = p;
+    p = 0i;
+    p = x_1079;
+    let x_594 : vec3<f32> = vec3<f32>(x_563.z, x_563.x, x_575.x);
+    let x_1080 : i32 = *(x_114);
+    *(x_114) = 0i;
+    *(x_114) = x_1080;
+    let x_139 : i32 = h_1;
+    let x_1081 : i32 = top;
+    top = 0i;
+    top = x_1081;
+    let x_595 : vec3<f32> = vec3<f32>(x_560.z, x_568.x, x_560.x);
+    let x_1082 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1082;
+    let x_1083 : i32 = p;
+    p = 0i;
+    p = x_1083;
+    if ((bitcast<i32>((1u + bitcast<u32>(x_137))) < x_139)) {
+      let x_1084 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1084;
+      let x_596 : vec2<f32> = vec2<f32>(x_592.y, x_582.x);
+      let x_1085 : i32 = l_1;
+      l_1 = 0i;
+      l_1 = x_1085;
+      let x_143 : i32 = top;
+      let x_1086 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1086;
+      let x_597 : vec3<f32> = vec3<f32>(x_562.y, x_560.y, x_560.y);
+      let x_144 : i32 = (x_143 + 1i);
+      let x_1087 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1087;
+      top = x_144;
+      let x_1088 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1088;
+      let x_145 : i32 = p;
+      let x_1089 : i32 = param_5;
+      param_5 = 0i;
+      param_5 = x_1089;
+      let x_599 : vec3<f32> = vec3<f32>(x_560.z, x_560.x, x_568.x);
+      let x_1090 : i32 = p;
+      p = 0i;
+      p = x_1090;
+      let x_600 : vec3<f32> = vec3<f32>(x_556.x, x_580.x, x_580.x);
+      let x_1091 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1091;
+      let x_147 : ptr<function, i32> = &(stack[x_144]);
+      let x_1092 : i32 = *(x_110);
+      *(x_110) = 0i;
+      *(x_110) = x_1092;
+      let x_601 : vec2<f32> = vec2<f32>(x_563.x, x_563.y);
+      *(x_147) = bitcast<i32>((1u + bitcast<u32>(x_145)));
+      let x_1093 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1093;
+      let x_148 : i32 = top;
+      let x_1094 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1094;
+      let x_602 : vec2<f32> = vec2<f32>(x_565.y, x_599.y);
+      let x_1095 : array<i32, 10u> = stack;
+      stack = array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i);
+      stack = x_1095;
+      let x_149 : i32 = (x_148 + bitcast<i32>(1u));
+      let x_1096 : i32 = *(x_147);
+      *(x_147) = 0i;
+      *(x_147) = x_1096;
+      top = x_149;
+      let x_1097 : i32 = param_4;
+      param_4 = 0i;
+      param_4 = x_1097;
+      let x_150 : i32 = h_1;
+      let x_1098 : i32 = *(x_100);
+      *(x_100) = 0i;
+      *(x_100) = x_1098;
+      let x_1099 : i32 = *(x_96);
+      *(x_96) = 0i;
+      *(x_96) = x_1099;
+      stack[x_149] = x_150;
+      let x_1100 : i32 = *(x_114);
+      *(x_114) = 0i;
+      *(x_114) = x_1100;
+      let x_603 : vec3<f32> = vec3<f32>(x_568.y, x_564.x, x_564.x);
+      let x_1101 : i32 = l_1;
+      l_1 = 0i;
+      l_1 = x_1101;
+    }
+    let x_1102 : i32 = *(x_100);
+    *(x_100) = 0i;
+    *(x_100) = x_1102;
+
+    continuing {
+      let x_1103 : i32 = l_1;
+      l_1 = 0i;
+      l_1 = x_1103;
+      let x_604 : vec2<f32> = vec2<f32>(x_563.z, x_564.x);
+      let x_1104 : QuicksortObject = obj;
+      obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+      obj = x_1104;
+    }
+  }
+  let x_1105 : i32 = h_1;
+  h_1 = 0i;
+  h_1 = x_1105;
+  return;
+}
+
+fn main_1() {
+  var color : vec3<f32>;
+  var i_2 : i32;
+  var uv : vec2<f32>;
+  let x_717 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_717;
+  i_2 = 0i;
+  let x_721 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_721;
+  if (true) {
+    let x_722 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_722;
+    let x_431 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).x, vec3<f32>(1.0f, 2.0f, 3.0f).x);
+    let x_158 : i32 = i_2;
+    let x_723 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_723;
+    let x_725 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_725;
+    let x_432 : vec2<f32> = vec2<f32>(x_431.y, x_431.y);
+    let x_726 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_726;
+  }
+  let x_756 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_756;
+  let x_446 : vec2<f32> = vec2<f32>(vec2<f32>().x, vec2<f32>().x);
+  let x_757 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_757;
+  quicksort_();
+  let x_758 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_758;
+  let x_184 : vec4<f32> = gl_FragCoord;
+  let x_759 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_759;
+  let x_447 : vec2<f32> = vec2<f32>(vec2<f32>().y, vec2<f32>().y);
+  let x_760 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_760;
+  let x_185 : vec2<f32> = vec2<f32>(x_184.x, x_184.y);
+  let x_448 : vec3<f32> = vec3<f32>(x_185.y, x_446.y, x_446.y);
+  let x_761 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_761;
+  let x_762 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_762;
+  let x_191 : vec2<f32> = x_188.resolution;
+  let x_763 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_763;
+  let x_449 : vec3<f32> = vec3<f32>(x_184.y, vec3<f32>(1.0f, 2.0f, 3.0f).z, x_184.w);
+  let x_764 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_764;
+  let x_192 : vec2<f32> = (x_185 / x_191);
+  let x_765 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_765;
+  let x_450 : vec2<f32> = vec2<f32>(x_447.x, x_185.y);
+  let x_766 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  let x_767 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_767;
+  color = x_766;
+  uv = x_192;
+  color = vec3<f32>(1.0f, 2.0f, 3.0f);
+  let x_768 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_768;
+  let x_451 : vec3<f32> = vec3<f32>(x_185.x, x_185.y, x_446.y);
+  let x_769 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_769;
+  let x_200 : ptr<private, i32> = &(obj.numbers[0u]);
+  let x_770 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_770;
+  let x_201 : i32 = *(x_200);
+  let x_771 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_771;
+  let x_772 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_772;
+  let x_206 : f32 = color.x;
+  let x_773 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_773;
+  let x_452 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec3<f32>(1.0f, 2.0f, 3.0f).y);
+  let x_774 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_774;
+  let x_775 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_775;
+  let x_453 : vec3<f32> = vec3<f32>(x_451.x, x_450.x, x_450.y);
+  color.x = (x_206 + f32(x_201));
+  let x_776 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_776;
+  let x_777 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_777;
+  let x_454 : vec2<f32> = vec2<f32>(x_184.y, x_184.y);
+  let x_210 : f32 = uv.x;
+  let x_455 : vec2<f32> = vec2<f32>(x_192.y, x_192.x);
+  let x_778 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_778;
+  let x_779 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_779;
+  if ((x_210 > 0.25f)) {
+    let x_780 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_780;
+    let x_781 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_781;
+    let x_456 : vec3<f32> = vec3<f32>(vec2<f32>().y, x_448.y, x_448.y);
+    let x_782 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_782;
+    let x_216 : i32 = obj.numbers[1i];
+    let x_783 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_783;
+    let x_457 : vec2<f32> = vec2<f32>(x_454.x, x_454.x);
+    let x_784 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_784;
+    let x_785 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_785;
+    let x_458 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).z, vec2<f32>().y);
+    let x_786 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_786;
+    let x_219 : f32 = color[0i];
+    let x_787 : f32 = color[0i];
+    color[0i] = 0.0f;
+    color[0i] = x_787;
+    let x_788 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_788;
+    let x_789 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_789;
+    let x_459 : vec3<f32> = vec3<f32>(x_454.y, x_454.y, x_447.y);
+    let x_790 : f32 = color[0i];
+    color[0i] = 0.0f;
+    color[0i] = x_790;
+    color.x = (f32(x_216) + x_219);
+    let x_791 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_791;
+  }
+  let x_792 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_792;
+  let x_793 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_793;
+  let x_223 : f32 = uv.x;
+  let x_794 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_794;
+  let x_460 : vec3<f32> = vec3<f32>(x_453.z, x_453.y, x_453.y);
+  let x_795 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_795;
+  let x_796 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_796;
+  let x_461 : vec2<f32> = vec2<f32>(vec2<f32>().y, vec2<f32>().y);
+  let x_797 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_797;
+  if ((x_223 > 0.5f)) {
+    let x_798 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_798;
+    let x_462 : vec2<f32> = vec2<f32>(x_446.x, x_446.x);
+    let x_799 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_799;
+    let x_229 : ptr<private, i32> = &(obj.numbers[2u]);
+    let x_800 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_800;
+    let x_463 : vec3<f32> = vec3<f32>(x_453.x, x_453.z, x_461.y);
+    let x_801 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_801;
+    let x_230 : i32 = *(x_229);
+    let x_802 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_802;
+    let x_803 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_803;
+    let x_804 : i32 = *(x_229);
+    *(x_229) = 0i;
+    *(x_229) = x_804;
+    let x_464 : vec2<f32> = vec2<f32>(x_450.y, x_191.x);
+    let x_805 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_805;
+    let x_234 : f32 = color.y;
+    let x_806 : i32 = *(x_229);
+    *(x_229) = 0i;
+    *(x_229) = x_806;
+    let x_465 : vec2<f32> = vec2<f32>(x_463.x, x_185.x);
+    let x_807 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_807;
+    let x_808 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_808;
+    let x_466 : vec2<f32> = vec2<f32>(x_455.y, vec2<f32>().y);
+    let x_809 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_809;
+    color.y = (f32(x_230) + x_234);
+    let x_810 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_810;
+  }
+  let x_811 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_811;
+  let x_467 : vec2<f32> = vec2<f32>(x_191.x, x_191.x);
+  let x_812 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_812;
+  let x_238 : f32 = uv[0i];
+  let x_813 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_813;
+  let x_814 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_814;
+  if ((x_238 > 0.75f)) {
+    let x_815 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_815;
+    let x_245 : i32 = obj.numbers[3i];
+    let x_816 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_816;
+    let x_817 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_817;
+    let x_468 : vec3<f32> = vec3<f32>(x_467.x, x_467.x, x_467.x);
+    let x_818 : f32 = uv[0i];
+    uv[0i] = 0.0f;
+    uv[0i] = x_818;
+    let x_819 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_819;
+    let x_249 : f32 = color.z;
+    let x_820 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_820;
+    let x_469 : vec3<f32> = vec3<f32>(x_467.x, x_191.y, x_467.y);
+    let x_821 : f32 = color.z;
+    color.z = 0.0f;
+    color.z = x_821;
+    let x_822 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_822;
+    let x_470 : vec2<f32> = vec2<f32>(vec2<f32>().x, vec2<f32>().y);
+    let x_823 : f32 = color.z;
+    color.z = 0.0f;
+    color.z = x_823;
+    color.z = (x_249 + f32(x_245));
+    let x_824 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_824;
+    let x_471 : vec2<f32> = vec2<f32>(x_470.y, x_470.y);
+  }
+  let x_825 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_825;
+  let x_472 : vec3<f32> = vec3<f32>(x_454.x, x_454.y, x_454.y);
+  let x_253 : ptr<private, i32> = &(obj.numbers[4i]);
+  let x_254 : i32 = *(x_253);
+  let x_826 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_826;
+  let x_827 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_827;
+  let x_473 : vec3<f32> = vec3<f32>(x_446.y, x_453.x, x_453.x);
+  let x_828 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_828;
+  let x_474 : vec2<f32> = vec2<f32>(x_191.x, x_184.z);
+  let x_829 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_829;
+  let x_257 : f32 = color.y;
+  let x_830 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_830;
+  let x_475 : vec2<f32> = vec2<f32>(x_467.x, x_450.x);
+  let x_831 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_831;
+  let x_832 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_832;
+  let x_476 : vec2<f32> = vec2<f32>(x_451.z, x_460.y);
+  color.y = (x_257 + f32(x_254));
+  let x_477 : vec3<f32> = vec3<f32>(vec2<f32>().x, x_472.x, vec2<f32>().y);
+  let x_833 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_833;
+  let x_834 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_834;
+  let x_478 : vec2<f32> = vec2<f32>(x_472.x, x_472.y);
+  let x_835 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_835;
+  let x_261 : f32 = uv.y;
+  let x_836 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_836;
+  let x_479 : vec3<f32> = vec3<f32>(vec2<f32>().y, x_454.y, vec2<f32>().x);
+  let x_837 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_837;
+  let x_838 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_838;
+  let x_480 : vec3<f32> = vec3<f32>(x_446.x, x_446.x, vec2<f32>().y);
+  let x_839 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_839;
+  if ((x_261 > 0.25f)) {
+    let x_481 : vec2<f32> = vec2<f32>(x_447.x, x_480.z);
+    let x_840 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_840;
+    let x_267 : i32 = obj.numbers[5u];
+    let x_841 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_841;
+    let x_842 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_842;
+    let x_843 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_843;
+    let x_270 : f32 = color.x;
+    let x_844 : f32 = uv[0i];
+    uv[0i] = 0.0f;
+    uv[0i] = x_844;
+    let x_482 : vec3<f32> = vec3<f32>(x_455.x, x_475.y, x_455.y);
+    let x_845 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_845;
+    let x_846 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_846;
+    let x_847 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_847;
+    let x_483 : vec3<f32> = vec3<f32>(x_184.w, x_184.w, x_192.x);
+    let x_848 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_848;
+    color.x = (f32(x_267) + x_270);
+    let x_484 : vec3<f32> = vec3<f32>(x_454.y, x_450.x, x_454.y);
+    let x_849 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_849;
+  }
+  let x_850 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_850;
+  let x_485 : vec3<f32> = vec3<f32>(x_467.x, x_450.y, x_450.x);
+  let x_851 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_851;
+  let x_852 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_852;
+  let x_274 : f32 = uv.y;
+  let x_853 : i32 = *(x_200);
+  *(x_200) = 0i;
+  *(x_200) = x_853;
+  if ((x_274 > 0.5f)) {
+    let x_854 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_854;
+    let x_486 : vec2<f32> = vec2<f32>(x_480.y, x_455.y);
+    let x_279 : ptr<private, i32> = &(obj.numbers[6u]);
+    let x_855 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_855;
+    let x_487 : vec2<f32> = vec2<f32>(x_449.z, x_449.y);
+    let x_856 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_856;
+    let x_280 : i32 = *(x_279);
+    let x_857 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_857;
+    let x_858 : i32 = i_2;
+    i_2 = 0i;
+    i_2 = x_858;
+    let x_859 : i32 = *(x_253);
+    *(x_253) = 0i;
+    *(x_253) = x_859;
+    let x_488 : vec2<f32> = vec2<f32>(x_473.z, x_473.y);
+    let x_283 : f32 = color.y;
+    let x_860 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_860;
+    let x_861 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_861;
+    let x_489 : vec2<f32> = vec2<f32>(x_475.y, x_475.x);
+    let x_862 : i32 = *(x_279);
+    *(x_279) = 0i;
+    *(x_279) = x_862;
+    let x_863 : i32 = *(x_279);
+    *(x_279) = 0i;
+    *(x_279) = x_863;
+    let x_490 : vec2<f32> = vec2<f32>(x_480.z, x_480.z);
+    let x_864 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_864;
+    color.y = (f32(x_280) + x_283);
+    let x_865 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_865;
+    let x_491 : vec2<f32> = vec2<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, x_454.x);
+    let x_866 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_866;
+  }
+  let x_492 : vec2<f32> = vec2<f32>(x_455.y, x_455.y);
+  let x_867 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_867;
+  let x_287 : f32 = uv.y;
+  let x_868 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_868;
+  let x_493 : vec2<f32> = vec2<f32>(x_475.x, x_475.y);
+  let x_869 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_869;
+  let x_870 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_870;
+  let x_494 : vec3<f32> = vec3<f32>(x_191.x, x_191.y, x_191.y);
+  let x_871 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_871;
+  if ((x_287 > 0.75f)) {
+    let x_872 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_872;
+    let x_873 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_873;
+    let x_495 : vec3<f32> = vec3<f32>(x_192.y, x_192.x, x_192.y);
+    let x_874 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_874;
+    let x_293 : i32 = obj.numbers[7i];
+    let x_875 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_875;
+    let x_496 : vec3<f32> = vec3<f32>(x_475.x, x_467.y, x_467.x);
+    let x_876 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_876;
+    let x_497 : vec2<f32> = vec2<f32>(x_477.x, x_461.y);
+    let x_877 : i32 = *(x_200);
+    *(x_200) = 0i;
+    *(x_200) = x_877;
+    let x_878 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_878;
+    let x_498 : vec3<f32> = vec3<f32>(x_478.x, x_478.y, x_478.x);
+    let x_879 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_879;
+    let x_296 : f32 = color.z;
+    let x_880 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_880;
+    let x_499 : vec2<f32> = vec2<f32>(x_184.x, x_184.y);
+    let x_881 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_881;
+    let x_882 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_882;
+    let x_883 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_883;
+    let x_500 : vec3<f32> = vec3<f32>(x_499.y, x_499.y, x_494.z);
+    let x_884 : f32 = color.z;
+    color.z = 0.0f;
+    color.z = x_884;
+    color.z = (f32(x_293) + x_296);
+    let x_885 : f32 = color.y;
+    color.y = 0.0f;
+    color.y = x_885;
+    let x_501 : vec2<f32> = vec2<f32>(x_453.x, x_453.z);
+    let x_886 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_886;
+  }
+  let x_887 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_887;
+  let x_502 : vec2<f32> = vec2<f32>(x_451.y, x_192.y);
+  let x_888 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_888;
+  let x_300 : ptr<private, i32> = &(obj.numbers[8i]);
+  let x_301 : i32 = *(x_300);
+  let x_889 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_889;
+  let x_503 : vec2<f32> = vec2<f32>(x_185.x, x_451.z);
+  let x_890 : i32 = *(x_300);
+  *(x_300) = 0i;
+  *(x_300) = x_890;
+  let x_891 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_891;
+  let x_504 : vec2<f32> = vec2<f32>(x_453.y, vec2<f32>().x);
+  let x_892 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_892;
+  let x_505 : vec3<f32> = vec3<f32>(x_504.x, x_504.y, x_504.x);
+  let x_893 : f32 = color.z;
+  color.z = 0.0f;
+  color.z = x_893;
+  let x_304 : f32 = color.z;
+  let x_894 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_894;
+  let x_506 : vec2<f32> = vec2<f32>(x_493.x, x_492.x);
+  let x_895 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_895;
+  let x_896 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_896;
+  let x_507 : vec2<f32> = vec2<f32>(x_461.x, x_447.x);
+  let x_897 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_897;
+  color.z = (x_304 + f32(x_301));
+  let x_898 : vec2<f32> = uv;
+  uv = vec2<f32>(0.0f, 0.0f);
+  uv = x_898;
+  let x_899 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_899;
+  let x_508 : vec3<f32> = vec3<f32>(x_461.y, x_461.x, x_506.y);
+  let x_900 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_900;
+  let x_308 : f32 = uv.x;
+  let x_901 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_901;
+  let x_509 : vec3<f32> = vec3<f32>(x_503.y, x_503.x, x_448.z);
+  let x_902 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_902;
+  let x_310 : f32 = uv.y;
+  let x_903 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_903;
+  let x_904 : f32 = color.z;
+  color.z = 0.0f;
+  color.z = x_904;
+  let x_510 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, x_485.y, x_485.z);
+  let x_905 : f32 = color.z;
+  color.z = 0.0f;
+  color.z = x_905;
+  let x_906 : i32 = i_2;
+  i_2 = 0i;
+  i_2 = x_906;
+  let x_511 : vec2<f32> = vec2<f32>(x_485.z, x_485.y);
+  let x_907 : vec3<f32> = color;
+  color = vec3<f32>(0.0f, 0.0f, 0.0f);
+  color = x_907;
+  let x_908 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_908;
+  let x_512 : vec3<f32> = vec3<f32>(x_455.y, x_455.y, x_455.y);
+  let x_909 : i32 = *(x_253);
+  *(x_253) = 0i;
+  *(x_253) = x_909;
+  if ((abs((x_308 - x_310)) < 0.25f)) {
+    let x_910 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_910;
+    let x_911 : QuicksortObject = obj;
+    obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+    obj = x_911;
+    let x_513 : vec3<f32> = vec3<f32>(x_505.z, x_505.x, x_448.x);
+    let x_912 : i32 = *(x_300);
+    *(x_300) = 0i;
+    *(x_300) = x_912;
+    let x_317 : i32 = obj.numbers[9u];
+    let x_514 : vec3<f32> = vec3<f32>(x_474.y, x_474.y, x_474.y);
+    let x_913 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_913;
+    let x_320 : f32 = color.x;
+    let x_914 : f32 = uv.y;
+    uv.y = 0.0f;
+    uv.y = x_914;
+    let x_515 : vec2<f32> = vec2<f32>(x_502.x, x_502.y);
+    let x_915 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_915;
+    let x_916 : vec3<f32> = color;
+    color = vec3<f32>(0.0f, 0.0f, 0.0f);
+    color = x_916;
+    let x_516 : vec2<f32> = vec2<f32>(x_452.x, x_452.x);
+    let x_917 : vec2<f32> = uv;
+    uv = vec2<f32>(0.0f, 0.0f);
+    uv = x_917;
+    let x_918 : f32 = uv.x;
+    uv.x = 0.0f;
+    uv.x = x_918;
+    let x_517 : vec3<f32> = vec3<f32>(vec2<f32>().x, vec2<f32>().x, vec2<f32>().y);
+    color.x = (f32(x_317) + x_320);
+    let x_919 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_919;
+    let x_518 : vec3<f32> = vec3<f32>(x_480.y, x_508.x, x_480.x);
+    let x_920 : f32 = color.x;
+    color.x = 0.0f;
+    color.x = x_920;
+  }
+  let x_921 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_921;
+  let x_325 : vec3<f32> = color;
+  let x_922 : f32 = uv[0i];
+  uv[0i] = 0.0f;
+  uv[0i] = x_922;
+  let x_519 : vec3<f32> = vec3<f32>(x_447.x, x_446.x, x_446.y);
+  let x_326 : vec3<f32> = normalize(x_325);
+  let x_923 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_923;
+  let x_924 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_924;
+  let x_925 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_925;
+  let x_926 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_926;
+  let x_520 : vec2<f32> = vec2<f32>(x_506.y, x_519.y);
+  let x_927 : f32 = color.y;
+  color.y = 0.0f;
+  color.y = x_927;
+  let x_330 : vec4<f32> = vec4<f32>(x_326.x, x_326.y, x_326.z, 1.0f);
+  let x_928 : f32 = uv.y;
+  uv.y = 0.0f;
+  uv.y = x_928;
+  let x_521 : vec3<f32> = vec3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f).y, vec3<f32>(1.0f, 2.0f, 3.0f).y, x_520.y);
+  let x_929 : f32 = uv.x;
+  uv.x = 0.0f;
+  uv.x = x_929;
+  x_GLF_color = x_330;
+  let x_930 : QuicksortObject = obj;
+  obj = QuicksortObject(array<i32, 10u>(0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i, 0i));
+  obj = x_930;
+  let x_522 : vec3<f32> = vec3<f32>(x_330.w, x_330.y, x_493.x);
+  let x_931 : f32 = color.x;
+  color.x = 0.0f;
+  color.x = x_931;
+  return;
+}
+
+struct main_out {
+  @location(0)
+  x_GLF_color_1 : vec4<f32>,
+}
+
+@fragment
+fn main(@builtin(position) gl_FragCoord_param : vec4<f32>) -> main_out {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  return main_out(x_GLF_color);
+}
+
+error: function-scope 'var' must have a constructible type
diff --git a/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.fxc.hlsl
index 3fdeb98..bfddf8a 100644
--- a/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void abs_421ca3() {
-  vector<float16_t, 3> res = abs((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.fxc.hlsl
index dfb72b0..bc3fb67 100644
--- a/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void abs_538d29() {
-  vector<float16_t, 4> res = abs((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.fxc.hlsl
index 9d84689..5e235dc 100644
--- a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void abs_5ae4fe() {
-  vector<float16_t, 2> res = abs((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.fxc.hlsl
index cf7d9fd7..07dca56 100644
--- a/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void abs_fd247f() {
-  float16_t res = abs(float16_t(0.0h));
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.fxc.hlsl
index 33eb215..cfa42fb 100644
--- a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void acos_004aff() {
-  vector<float16_t, 2> res = acos((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(0.250488281h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.fxc.hlsl
index 666eb30..a9cf00b 100644
--- a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void acos_203628() {
-  vector<float16_t, 4> res = acos((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(0.250488281h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.fxc.hlsl
index 6732011..1b99f6e 100644
--- a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void acos_303e3d() {
-  float16_t res = acos(float16_t(0.0h));
+  float16_t res = float16_t(0.250488281h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.fxc.hlsl
index 9764843..7623d60 100644
--- a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void acos_f47057() {
-  vector<float16_t, 3> res = acos((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(0.250488281h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.fxc.hlsl
index 1b785a0..1de9dcf 100644
--- a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void asin_11dfda() {
-  float16_t res = asin(float16_t(0.0h));
+  float16_t res = float16_t(0.499755859h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.fxc.hlsl
index 54b7621..8d42ff1 100644
--- a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void asin_2d8e29() {
-  vector<float16_t, 3> res = asin((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(0.499755859h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.fxc.hlsl
index 4233376..ea28078 100644
--- a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void asin_3cfbd4() {
-  vector<float16_t, 4> res = asin((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(0.499755859h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.fxc.hlsl
index 516f6a3..13d540e 100644
--- a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void asin_b4aced() {
-  vector<float16_t, 2> res = asin((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(0.499755859h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.fxc.hlsl
index 3bd5cb4..3e1020e 100644
--- a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-float16_t tint_sinh(float16_t x) {
-  return log((x + sqrt(((x * x) + float16_t(1.0h)))));
-}
-
 void asinh_468a48() {
-  float16_t res = tint_sinh(float16_t(0.0h));
+  float16_t res = float16_t(0.881347656h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.fxc.hlsl
index bf86437..6db7771 100644
--- a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-vector<float16_t, 4> tint_sinh(vector<float16_t, 4> x) {
-  return log((x + sqrt(((x * x) + float16_t(1.0h)))));
-}
-
 void asinh_95ab2b() {
-  vector<float16_t, 4> res = tint_sinh((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(0.881347656h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.fxc.hlsl
index 2969a86..402282f 100644
--- a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-vector<float16_t, 2> tint_sinh(vector<float16_t, 2> x) {
-  return log((x + sqrt(((x * x) + float16_t(1.0h)))));
-}
-
 void asinh_ad8f8b() {
-  vector<float16_t, 2> res = tint_sinh((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(0.881347656h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.fxc.hlsl
index 0019998..a86115e 100644
--- a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-vector<float16_t, 3> tint_sinh(vector<float16_t, 3> x) {
-  return log((x + sqrt(((x * x) + float16_t(1.0h)))));
-}
-
 void asinh_fb5e8c() {
-  vector<float16_t, 3> res = tint_sinh((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(0.881347656h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.fxc.hlsl
index 8c47b24..a4b9530 100644
--- a/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void atan_19faea() {
-  vector<float16_t, 4> res = atan((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(0.78515625h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.fxc.hlsl
index 76a8d82..4162546 100644
--- a/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void atan_1e1764() {
-  vector<float16_t, 2> res = atan((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(0.78515625h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.fxc.hlsl
index 85ede7d..4affda1 100644
--- a/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void atan_a5f421() {
-  vector<float16_t, 3> res = atan((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(0.78515625h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.fxc.hlsl
index 9e851e8..ec6a3e9 100644
--- a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void atan_a7ba61() {
-  float16_t res = atan(float16_t(0.0h));
+  float16_t res = float16_t(0.78515625h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.fxc.hlsl
index e945dce..9b9446e 100644
--- a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void atan2_21dfea() {
-  vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> res = (float16_t(0.78515625h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.fxc.hlsl
index a28508d..7b66cdf 100644
--- a/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void atan2_93febc() {
-  vector<float16_t, 2> res = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> res = (float16_t(0.78515625h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.fxc.hlsl
index 9eaf692..5a48a71 100644
--- a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void atan2_ca698e() {
-  float16_t res = float16_t(0.0h);
+  float16_t res = float16_t(0.78515625h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.fxc.hlsl
index fc6677f..45ba1c9 100644
--- a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void atan2_d983ab() {
-  vector<float16_t, 4> res = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> res = (float16_t(0.78515625h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.fxc.hlsl
index c836a42..21ae74d 100644
--- a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-vector<float16_t, 2> tint_atanh(vector<float16_t, 2> x) {
-  return (log(((float16_t(1.0h) + x) / (float16_t(1.0h) - x))) * float16_t(0.5h));
-}
-
 void atanh_5bf88d() {
-  vector<float16_t, 2> res = tint_atanh((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(0.548828125h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.fxc.hlsl
index 673c1a8..4837df2 100644
--- a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-float16_t tint_atanh(float16_t x) {
-  return (log(((float16_t(1.0h) + x) / (float16_t(1.0h) - x))) * float16_t(0.5h));
-}
-
 void atanh_d2d8cd() {
-  float16_t res = tint_atanh(float16_t(0.0h));
+  float16_t res = float16_t(0.548828125h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.fxc.hlsl
index 8ac8233..14e2310 100644
--- a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-vector<float16_t, 4> tint_atanh(vector<float16_t, 4> x) {
-  return (log(((float16_t(1.0h) + x) / (float16_t(1.0h) - x))) * float16_t(0.5h));
-}
-
 void atanh_e3b450() {
-  vector<float16_t, 4> res = tint_atanh((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(0.548828125h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.fxc.hlsl
index 73c7d6e..fca7c3e 100644
--- a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-vector<float16_t, 3> tint_atanh(vector<float16_t, 3> x) {
-  return (log(((float16_t(1.0h) + x) / (float16_t(1.0h) - x))) * float16_t(0.5h));
-}
-
 void atanh_ec4b06() {
-  vector<float16_t, 3> res = tint_atanh((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(0.548828125h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.fxc.hlsl
index 740b9fb..c468a7d 100644
--- a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void ceil_09bf52() {
-  vector<float16_t, 3> res = ceil((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.fxc.hlsl
index 1435d96..260de92 100644
--- a/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void ceil_18c240() {
-  vector<float16_t, 2> res = ceil((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(2.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.fxc.hlsl
index 3ff7ba1..7767b67 100644
--- a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void ceil_4bca2a() {
-  vector<float16_t, 4> res = ceil((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.fxc.hlsl
index c53464e..94b8315 100644
--- a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void ceil_f3f889() {
-  float16_t res = ceil(float16_t(0.0h));
+  float16_t res = float16_t(2.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.fxc.hlsl
index 77968a9..4c0b67f 100644
--- a/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void clamp_235b29() {
-  vector<float16_t, 2> res = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.fxc.hlsl
index 3841415..f33bd44 100644
--- a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void clamp_2c251b() {
-  vector<float16_t, 4> res = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.fxc.hlsl
index 92bfc65..2e4703b 100644
--- a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void clamp_553ffb() {
-  float16_t res = float16_t(0.0h);
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.fxc.hlsl
index 71ab78a..96a0f1b 100644
--- a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void clamp_b195eb() {
-  vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.fxc.hlsl
index d5157ff..cf34ab4 100644
--- a/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void cos_0835a8() {
-  vector<float16_t, 3> res = cos((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.fxc.hlsl
index df2ecbf..3ee553e 100644
--- a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void cos_0a89f7() {
-  vector<float16_t, 4> res = cos((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.fxc.hlsl
index 50de922..1032178 100644
--- a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void cos_5bc2c6() {
-  vector<float16_t, 2> res = cos((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.fxc.hlsl
index 26cef80..5c5aa25 100644
--- a/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void cos_fc047d() {
-  float16_t res = cos(float16_t(0.0h));
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.fxc.hlsl
index d771cfa..f0a204c 100644
--- a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void cosh_2ed778() {
-  float16_t res = cosh(float16_t(0.0h));
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.fxc.hlsl
index e532d68..4112216 100644
--- a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void cosh_3b7bbf() {
-  vector<float16_t, 4> res = cosh((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.fxc.hlsl
index 30c509a..503f646 100644
--- a/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void cosh_43b672() {
-  vector<float16_t, 2> res = cosh((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.fxc.hlsl
index 003dd06..fe85516 100644
--- a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void cosh_b1b8a0() {
-  vector<float16_t, 3> res = cosh((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.fxc.hlsl
index 8dd8e41..802b5ee 100644
--- a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void cross_9857cb() {
-  vector<float16_t, 3> res = cross((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.fxc.hlsl
index f7ea54a..d52117b 100644
--- a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-vector<float16_t, 4> tint_degrees(vector<float16_t, 4> param_0) {
-  return param_0 * 57.295779513082322865;
-}
-
 void degrees_3055d3() {
-  vector<float16_t, 4> res = tint_degrees((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(57.3125h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.fxc.hlsl
index b871168..4c0dd2b 100644
--- a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-float16_t tint_degrees(float16_t param_0) {
-  return param_0 * 57.295779513082322865;
-}
-
 void degrees_5e9805() {
-  float16_t res = tint_degrees(float16_t(0.0h));
+  float16_t res = float16_t(57.3125h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.fxc.hlsl
index 6d77c30..ed429e7 100644
--- a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-vector<float16_t, 3> tint_degrees(vector<float16_t, 3> param_0) {
-  return param_0 * 57.295779513082322865;
-}
-
 void degrees_dfe8f4() {
-  vector<float16_t, 3> res = tint_degrees((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(57.3125h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.fxc.hlsl
index c6c9876..d44884e 100644
--- a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-vector<float16_t, 2> tint_degrees(vector<float16_t, 2> param_0) {
-  return param_0 * 57.295779513082322865;
-}
-
 void degrees_f59715() {
-  vector<float16_t, 2> res = tint_degrees((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(57.3125h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.fxc.hlsl
index 461b82a..06a3c85 100644
--- a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void determinant_32bfde() {
-  float16_t res = determinant(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));
+  float16_t res = float16_t(0.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.fxc.hlsl
index e64298d..8cc1a36 100644
--- a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void determinant_d7c86f() {
-  float16_t res = determinant(matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+  float16_t res = float16_t(0.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.fxc.hlsl
index 23274eb..1d9fc00 100644
--- a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void determinant_fc12a5() {
-  float16_t res = determinant(matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+  float16_t res = float16_t(0.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.fxc.hlsl
index ff8a9f0..67b8ca5 100644
--- a/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void distance_7272f3() {
-  float16_t res = distance((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  float16_t res = float16_t(0.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.fxc.hlsl
index 271dd40..6452257 100644
--- a/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void distance_7d201f() {
-  float16_t res = distance(float16_t(0.0h), float16_t(0.0h));
+  float16_t res = float16_t(0.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.fxc.hlsl
index bb842fc..8856221 100644
--- a/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void distance_892a5d() {
-  float16_t res = distance((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  float16_t res = float16_t(0.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.fxc.hlsl
index 8546756..3228116 100644
--- a/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void distance_928fa0() {
-  float16_t res = distance((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  float16_t res = float16_t(0.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.fxc.hlsl
index 0d34f0f..3930dea 100644
--- a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void dot_8e40f1() {
-  float16_t res = dot((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  float16_t res = float16_t(3.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.fxc.hlsl
index 9c84d25..f49b398 100644
--- a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void dot_cd5a04() {
-  float16_t res = dot((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  float16_t res = float16_t(2.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.fxc.hlsl
index e903bf7..1c483ad 100644
--- a/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void dot_d0d179() {
-  float16_t res = dot((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  float16_t res = float16_t(4.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.fxc.hlsl
index 45f4937..5cb2b43 100644
--- a/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp_13806d() {
-  vector<float16_t, 3> res = exp((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(2.716796875h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.fxc.hlsl
index 203f106..10eb923 100644
--- a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp_2e08e2() {
-  vector<float16_t, 2> res = exp((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(2.716796875h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.fxc.hlsl
index b3acd29..93b8ff1 100644
--- a/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp_611a87() {
-  vector<float16_t, 4> res = exp((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(2.716796875h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.fxc.hlsl
index 782a329..782950b 100644
--- a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp_c18fe9() {
-  float16_t res = exp(float16_t(0.0h));
+  float16_t res = float16_t(2.716796875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.fxc.hlsl
index 420ca41..968f53c 100644
--- a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp2_151a4c() {
-  vector<float16_t, 2> res = exp2((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(2.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.fxc.hlsl
index 9aa33ca..f4b5394 100644
--- a/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp2_751377() {
-  vector<float16_t, 3> res = exp2((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.fxc.hlsl
index b041bb4..e67153b 100644
--- a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp2_b408e4() {
-  float16_t res = exp2(float16_t(0.0h));
+  float16_t res = float16_t(2.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.fxc.hlsl
index 8fd64a7..ceda983 100644
--- a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp2_ffa827() {
-  vector<float16_t, 4> res = exp2((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.fxc.hlsl
index 7ed18de..dcbd12f 100644
--- a/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void faceForward_524986() {
-  vector<float16_t, 3> res = faceforward((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(-1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.fxc.hlsl
index 0164001..03437b6 100644
--- a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void faceForward_cc63dc() {
-  vector<float16_t, 4> res = faceforward((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(-1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.fxc.hlsl
index 3cb6b43..493747e 100644
--- a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void faceForward_fb0f2e() {
-  vector<float16_t, 2> res = faceforward((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(-1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.fxc.hlsl
index b2337a0..6e0253f 100644
--- a/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void floor_3802c0() {
-  vector<float16_t, 3> res = floor((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.fxc.hlsl
index 10bfbb1..1342297 100644
--- a/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void floor_84658c() {
-  vector<float16_t, 2> res = floor((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.fxc.hlsl
index f7fedb9..0779860 100644
--- a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void floor_a2d31b() {
-  vector<float16_t, 4> res = floor((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.fxc.hlsl
index d210fdd..18934a4 100644
--- a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void floor_b6e09c() {
-  float16_t res = floor(float16_t(0.0h));
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.fxc.hlsl
index e9da9db..0c8bca8 100644
--- a/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void fma_ab7818() {
-  vector<float16_t, 4> res = mad((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.fxc.hlsl
index 51ff8b3..39996a8 100644
--- a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void fma_bf21b6() {
-  vector<float16_t, 2> res = mad((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(2.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.fxc.hlsl
index 3e21ac7..001d75c 100644
--- a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void fma_c8abb3() {
-  float16_t res = mad(float16_t(0.0h), float16_t(0.0h), float16_t(0.0h));
+  float16_t res = float16_t(2.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.fxc.hlsl
index 1ddf2d33..6951b31 100644
--- a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void fma_e7abdc() {
-  vector<float16_t, 3> res = mad((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.fxc.hlsl
index 23e5f82..4c80772 100644
--- a/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void fract_181aa9() {
-  vector<float16_t, 2> res = frac((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(0.25h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.fxc.hlsl
index 4351653..5e2826e 100644
--- a/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void fract_498c77() {
-  vector<float16_t, 4> res = frac((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(0.25h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.fxc.hlsl
index 40f9c43..87bf0c4 100644
--- a/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void fract_958a1d() {
-  vector<float16_t, 3> res = frac((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(0.25h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.fxc.hlsl
index 9cb9bf9..eff8b41 100644
--- a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void fract_eb38ce() {
-  float16_t res = frac(float16_t(0.0h));
+  float16_t res = float16_t(0.25h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/frexp/3dd21e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/3dd21e.wgsl.expected.fxc.hlsl
index 8580f75..d9902d8 100644
--- a/test/tint/builtins/gen/literal/frexp/3dd21e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/3dd21e.wgsl.expected.fxc.hlsl
@@ -1,18 +1,11 @@
 SKIP: FAILED
 
 struct frexp_result_vec4_f16 {
-  vector<float16_t, 4> sig;
+  vector<float16_t, 4> fract;
   int4 exp;
 };
-frexp_result_vec4_f16 tint_frexp(vector<float16_t, 4> param_0) {
-  vector<float16_t, 4> exp;
-  vector<float16_t, 4> sig = frexp(param_0, exp);
-  frexp_result_vec4_f16 result = {sig, int4(exp)};
-  return result;
-}
-
 void frexp_3dd21e() {
-  frexp_result_vec4_f16 res = tint_frexp((float16_t(0.0h)).xxxx);
+  frexp_result_vec4_f16 res = {(float16_t(0.5h)).xxxx, (1).xxxx};
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/frexp/5257dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/5257dd.wgsl.expected.fxc.hlsl
index af127fd..e57699e 100644
--- a/test/tint/builtins/gen/literal/frexp/5257dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/5257dd.wgsl.expected.fxc.hlsl
@@ -1,18 +1,11 @@
 SKIP: FAILED
 
 struct frexp_result_f16 {
-  float16_t sig;
+  float16_t fract;
   int exp;
 };
-frexp_result_f16 tint_frexp(float16_t param_0) {
-  float16_t exp;
-  float16_t sig = frexp(param_0, exp);
-  frexp_result_f16 result = {sig, int(exp)};
-  return result;
-}
-
 void frexp_5257dd() {
-  frexp_result_f16 res = tint_frexp(float16_t(0.0h));
+  frexp_result_f16 res = {float16_t(0.5h), 1};
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/frexp/5f47bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/5f47bf.wgsl.expected.fxc.hlsl
index 6b16ff6..084f928 100644
--- a/test/tint/builtins/gen/literal/frexp/5f47bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/5f47bf.wgsl.expected.fxc.hlsl
@@ -1,18 +1,11 @@
 SKIP: FAILED
 
 struct frexp_result_vec2_f16 {
-  vector<float16_t, 2> sig;
+  vector<float16_t, 2> fract;
   int2 exp;
 };
-frexp_result_vec2_f16 tint_frexp(vector<float16_t, 2> param_0) {
-  vector<float16_t, 2> exp;
-  vector<float16_t, 2> sig = frexp(param_0, exp);
-  frexp_result_vec2_f16 result = {sig, int2(exp)};
-  return result;
-}
-
 void frexp_5f47bf() {
-  frexp_result_vec2_f16 res = tint_frexp((float16_t(0.0h)).xx);
+  frexp_result_vec2_f16 res = {(float16_t(0.5h)).xx, (1).xx};
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/frexp/ae4a66.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/ae4a66.wgsl.expected.fxc.hlsl
index 1ee378c..4c2ca85 100644
--- a/test/tint/builtins/gen/literal/frexp/ae4a66.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/ae4a66.wgsl.expected.fxc.hlsl
@@ -1,18 +1,11 @@
 SKIP: FAILED
 
 struct frexp_result_vec3_f16 {
-  vector<float16_t, 3> sig;
+  vector<float16_t, 3> fract;
   int3 exp;
 };
-frexp_result_vec3_f16 tint_frexp(vector<float16_t, 3> param_0) {
-  vector<float16_t, 3> exp;
-  vector<float16_t, 3> sig = frexp(param_0, exp);
-  frexp_result_vec3_f16 result = {sig, int3(exp)};
-  return result;
-}
-
 void frexp_ae4a66() {
-  frexp_result_vec3_f16 res = tint_frexp((float16_t(0.0h)).xxx);
+  frexp_result_vec3_f16 res = {(float16_t(0.5h)).xxx, (1).xxx};
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.fxc.hlsl
index 410b91e..461b3d2 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void inverseSqrt_440300() {
-  float16_t res = rsqrt(float16_t(0.0h));
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.fxc.hlsl
index 7732ac5..d4de415 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void inverseSqrt_5f51f8() {
-  vector<float16_t, 2> res = rsqrt((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.fxc.hlsl
index 07d5781..06b6b5d 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void inverseSqrt_b85ebd() {
-  vector<float16_t, 3> res = rsqrt((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.fxc.hlsl
index 8f461ba..4a576d8 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void inverseSqrt_cbdc70() {
-  vector<float16_t, 4> res = rsqrt((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.fxc.hlsl
index 6c87f41..e749e36 100644
--- a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.fxc.hlsl
@@ -30,7 +30,3 @@
   ldexp_082c1f();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000001E1B8560100(2,3-11): error X3000: unrecognized identifier 'float16_t'
-C:\src\dawn\test\tint\Shader@0x000001E1B8560100(2,13-15): error X3000: unrecognized identifier 'res'
-
diff --git a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.fxc.hlsl
index 772be04..9162ec6 100644
--- a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.fxc.hlsl
@@ -30,6 +30,3 @@
   ldexp_217a31();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x00000132D8550FB0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.fxc.hlsl
index 925bf01..5ad70e2 100644
--- a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.fxc.hlsl
@@ -30,6 +30,3 @@
   ldexp_3d90b4();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000001C8EE651B30(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.fxc.hlsl
index e9b62dd..a203546 100644
--- a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.fxc.hlsl
@@ -30,7 +30,3 @@
   ldexp_624e0c();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x00000246DEBE4390(2,3-11): error X3000: unrecognized identifier 'float16_t'
-C:\src\dawn\test\tint\Shader@0x00000246DEBE4390(2,13-15): error X3000: unrecognized identifier 'res'
-
diff --git a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.fxc.hlsl
index 2cc49b0..5af754b 100644
--- a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.fxc.hlsl
@@ -30,6 +30,3 @@
   ldexp_7485ce();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000001A317BC93B0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.fxc.hlsl
index f619ab8..6d04fdc 100644
--- a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.fxc.hlsl
@@ -30,6 +30,3 @@
   ldexp_7fa13c();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000001D4BE9AE370(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.fxc.hlsl
index ee084a5..99e3a79 100644
--- a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.fxc.hlsl
@@ -30,6 +30,3 @@
   ldexp_8a0c2f();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x0000021161096930(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.fxc.hlsl
index ca6aad3..b624962 100644
--- a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.fxc.hlsl
@@ -30,6 +30,3 @@
   ldexp_8e43e9();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x00000172CFF90020(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.fxc.hlsl
index 579615e..e70a858 100644
--- a/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void length_3f0e13() {
-  float16_t res = length((float16_t(0.0h)).xx);
+  float16_t res = float16_t(0.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.fxc.hlsl
index ac6e839..887fc10 100644
--- a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void length_5b1a9b() {
-  float16_t res = length((float16_t(0.0h)).xxxx);
+  float16_t res = float16_t(0.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.fxc.hlsl
index b1cdfca..780b4c1 100644
--- a/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void length_ba16d6() {
-  float16_t res = length((float16_t(0.0h)).xxx);
+  float16_t res = float16_t(0.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.fxc.hlsl
index c5dafdc..cb41861 100644
--- a/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void length_c158da() {
-  float16_t res = length(float16_t(0.0h));
+  float16_t res = float16_t(0.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.fxc.hlsl
index 9610478..2b3e8a3 100644
--- a/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log_6ff86f() {
-  vector<float16_t, 3> res = log((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.fxc.hlsl
index a17a48b..b63aa1d 100644
--- a/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log_8f0e32() {
-  vector<float16_t, 2> res = log((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(0.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.fxc.hlsl
index 9ba56aa..20ba298 100644
--- a/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log_c9f489() {
-  float16_t res = log(float16_t(0.0h));
+  float16_t res = float16_t(0.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.fxc.hlsl
index dee6e11..3659ee5 100644
--- a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log_cdbdc1() {
-  vector<float16_t, 4> res = log((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(0.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.fxc.hlsl
index 23d8495..c26fa6f 100644
--- a/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log2_38b478() {
-  vector<float16_t, 3> res = log2((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.fxc.hlsl
index dac6ba1..f683880 100644
--- a/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log2_776088() {
-  vector<float16_t, 4> res = log2((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(0.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.fxc.hlsl
index fb4c5c5..36ce200 100644
--- a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log2_8c10b3() {
-  float16_t res = log2(float16_t(0.0h));
+  float16_t res = float16_t(0.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.fxc.hlsl
index 0ca144b..40ca080 100644
--- a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log2_fb9f0b() {
-  vector<float16_t, 2> res = log2((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(0.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.fxc.hlsl
index 0dffb14..5c7b1b6 100644
--- a/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void max_111ac0() {
-  float16_t res = max(float16_t(0.0h), float16_t(0.0h));
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.fxc.hlsl
index 3012d3c..39fb2a3 100644
--- a/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void max_34956e() {
-  vector<float16_t, 2> res = max((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/max/445169.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/445169.wgsl.expected.fxc.hlsl
index 56d365d..23c4eee 100644
--- a/test/tint/builtins/gen/literal/max/445169.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/445169.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void max_445169() {
-  vector<float16_t, 3> res = max((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.fxc.hlsl
index dfbfa9d..e4268e6 100644
--- a/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void max_e14f2b() {
-  vector<float16_t, 4> res = max((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.fxc.hlsl
index 15ea82a..fe0a5bd 100644
--- a/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void min_7c710a() {
-  vector<float16_t, 4> res = min((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.fxc.hlsl
index df4009f..400eef0 100644
--- a/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void min_ab0acd() {
-  vector<float16_t, 3> res = min((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.fxc.hlsl
index 26e5f9b..217bcce 100644
--- a/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void min_ac84d6() {
-  float16_t res = min(float16_t(0.0h), float16_t(0.0h));
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.fxc.hlsl
index b0a7318..0d0bc7c 100644
--- a/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void min_e780f9() {
-  vector<float16_t, 2> res = min((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.fxc.hlsl
index dbef3f6..8079d2a 100644
--- a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void mix_38cbbb() {
-  float16_t res = lerp(float16_t(0.0h), float16_t(0.0h), float16_t(0.0h));
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.fxc.hlsl
index 2f46794..1f151f0 100644
--- a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void mix_63f2fd() {
-  vector<float16_t, 3> res = lerp((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.fxc.hlsl
index 88b49b6..15d13d0 100644
--- a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void mix_98ee3e() {
-  vector<float16_t, 2> res = lerp((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.fxc.hlsl
index 20f26c9..3600377 100644
--- a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void mix_c1aec6() {
-  vector<float16_t, 3> res = lerp((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, float16_t(0.0h));
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.fxc.hlsl
index 79505ff..4b80684 100644
--- a/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void mix_e46a83() {
-  vector<float16_t, 2> res = lerp((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, float16_t(0.0h));
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.fxc.hlsl
index c0b47c2..8d98116 100644
--- a/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void mix_ee2468() {
-  vector<float16_t, 4> res = lerp((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.fxc.hlsl
index 60d5d206..a73fb63 100644
--- a/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void mix_f1a543() {
-  vector<float16_t, 4> res = lerp((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, float16_t(0.0h));
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/modf/45005f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/modf/45005f.wgsl.expected.fxc.hlsl
index b455907..ab61f99 100644
--- a/test/tint/builtins/gen/literal/modf/45005f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/45005f.wgsl.expected.fxc.hlsl
@@ -4,14 +4,8 @@
   vector<float16_t, 3> fract;
   vector<float16_t, 3> whole;
 };
-modf_result_vec3_f16 tint_modf(vector<float16_t, 3> param_0) {
-  modf_result_vec3_f16 result;
-  result.fract = modf(param_0, result.whole);
-  return result;
-}
-
 void modf_45005f() {
-  modf_result_vec3_f16 res = tint_modf((float16_t(0.0h)).xxx);
+  modf_result_vec3_f16 res = {(float16_t(-0.5h)).xxx, (float16_t(-1.0h)).xxx};
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/modf/8dbbbf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/modf/8dbbbf.wgsl.expected.fxc.hlsl
index 3d55a32..47ce051 100644
--- a/test/tint/builtins/gen/literal/modf/8dbbbf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/8dbbbf.wgsl.expected.fxc.hlsl
@@ -4,14 +4,8 @@
   float16_t fract;
   float16_t whole;
 };
-modf_result_f16 tint_modf(float16_t param_0) {
-  modf_result_f16 result;
-  result.fract = modf(param_0, result.whole);
-  return result;
-}
-
 void modf_8dbbbf() {
-  modf_result_f16 res = tint_modf(float16_t(0.0h));
+  modf_result_f16 res = {float16_t(-0.5h), float16_t(-1.0h)};
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/modf/995934.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/modf/995934.wgsl.expected.fxc.hlsl
index 7074c4e..bce3ed9 100644
--- a/test/tint/builtins/gen/literal/modf/995934.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/995934.wgsl.expected.fxc.hlsl
@@ -4,14 +4,8 @@
   vector<float16_t, 4> fract;
   vector<float16_t, 4> whole;
 };
-modf_result_vec4_f16 tint_modf(vector<float16_t, 4> param_0) {
-  modf_result_vec4_f16 result;
-  result.fract = modf(param_0, result.whole);
-  return result;
-}
-
 void modf_995934() {
-  modf_result_vec4_f16 res = tint_modf((float16_t(0.0h)).xxxx);
+  modf_result_vec4_f16 res = {(float16_t(-0.5h)).xxxx, (float16_t(-1.0h)).xxxx};
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/modf/a545b9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/modf/a545b9.wgsl.expected.fxc.hlsl
index aed1027..fe02442 100644
--- a/test/tint/builtins/gen/literal/modf/a545b9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/a545b9.wgsl.expected.fxc.hlsl
@@ -4,14 +4,8 @@
   vector<float16_t, 2> fract;
   vector<float16_t, 2> whole;
 };
-modf_result_vec2_f16 tint_modf(vector<float16_t, 2> param_0) {
-  modf_result_vec2_f16 result;
-  result.fract = modf(param_0, result.whole);
-  return result;
-}
-
 void modf_a545b9() {
-  modf_result_vec2_f16 res = tint_modf((float16_t(0.0h)).xx);
+  modf_result_vec2_f16 res = {(float16_t(-0.5h)).xx, (float16_t(-1.0h)).xx};
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.fxc.hlsl
index 1264893..e472907 100644
--- a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void normalize_39d5ec() {
-  vector<float16_t, 3> res = normalize((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(0.577148438h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.fxc.hlsl
index fd543f6..b459130 100644
--- a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void normalize_7990f3() {
-  vector<float16_t, 2> res = normalize((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(0.70703125h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.fxc.hlsl
index 70f8748..90dc540 100644
--- a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void normalize_b8cb8d() {
-  vector<float16_t, 4> res = normalize((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(0.5h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.fxc.hlsl
index 24ae102..ab480e6 100644
--- a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void pow_4f33b2() {
-  vector<float16_t, 4> res = pow((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.fxc.hlsl
index 8e63234..b9060e8 100644
--- a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void pow_ce9ef5() {
-  float16_t res = pow(float16_t(0.0h), float16_t(0.0h));
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.fxc.hlsl
index 6fea07e..9bbb1f7 100644
--- a/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void pow_f37b25() {
-  vector<float16_t, 2> res = pow((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.fxc.hlsl
index 6663956..63cddb3 100644
--- a/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void pow_fa5429() {
-  vector<float16_t, 3> res = pow((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.fxc.hlsl
index e765dd7..f35ec6f 100644
--- a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-float16_t tint_radians(float16_t param_0) {
-  return param_0 * 0.017453292519943295474;
-}
-
 void radians_208fd9() {
-  float16_t res = tint_radians(float16_t(0.0h));
+  float16_t res = float16_t(0.017440796h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.fxc.hlsl
index a75c8d2..d6f3d65 100644
--- a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-vector<float16_t, 4> tint_radians(vector<float16_t, 4> param_0) {
-  return param_0 * 0.017453292519943295474;
-}
-
 void radians_44f20b() {
-  vector<float16_t, 4> res = tint_radians((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(0.017440796h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.fxc.hlsl
index f2869e0..defdda3 100644
--- a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-vector<float16_t, 3> tint_radians(vector<float16_t, 3> param_0) {
-  return param_0 * 0.017453292519943295474;
-}
-
 void radians_7ea4c7() {
-  vector<float16_t, 3> res = tint_radians((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(0.017440796h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.fxc.hlsl
index df149a6..1968efa 100644
--- a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.fxc.hlsl
@@ -1,11 +1,7 @@
 SKIP: FAILED
 
-vector<float16_t, 2> tint_radians(vector<float16_t, 2> param_0) {
-  return param_0 * 0.017453292519943295474;
-}
-
 void radians_fbacf0() {
-  vector<float16_t, 2> res = tint_radians((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(0.017440796h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.fxc.hlsl
index 17cc843..fb92d3b 100644
--- a/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void reflect_310de5() {
-  vector<float16_t, 4> res = reflect((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(-7.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.fxc.hlsl
index 7ab3dc5..adacc90 100644
--- a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void reflect_61ca21() {
-  vector<float16_t, 3> res = reflect((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(-5.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.fxc.hlsl
index 6df7fb5..e952633 100644
--- a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void reflect_bb15ac() {
-  vector<float16_t, 2> res = reflect((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(-3.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.fxc.hlsl
index 41d1449..c853fb0 100644
--- a/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void refract_0594ba() {
-  vector<float16_t, 4> res = refract((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, float16_t(0.0h));
+  vector<float16_t, 4> res = (float16_t(-7.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.fxc.hlsl
index 2bfba7b..0548825 100644
--- a/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void refract_570cb3() {
-  vector<float16_t, 2> res = refract((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, float16_t(0.0h));
+  vector<float16_t, 2> res = (float16_t(-3.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.fxc.hlsl
index 47692c9..72d7db4 100644
--- a/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void refract_8984af() {
-  vector<float16_t, 3> res = refract((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, float16_t(0.0h));
+  vector<float16_t, 3> res = (float16_t(-5.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.fxc.hlsl
index 3e7bb1c..fe1d576 100644
--- a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void round_9078ef() {
-  float16_t res = round(float16_t(0.0h));
+  float16_t res = float16_t(3.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.fxc.hlsl
index 53cbe3d..4522af7 100644
--- a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void round_d87e84() {
-  vector<float16_t, 2> res = round((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(3.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.fxc.hlsl
index f5a3cd7..65f86a6 100644
--- a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void round_e1bba2() {
-  vector<float16_t, 3> res = round((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(3.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.fxc.hlsl
index ab7ae6a..6852574 100644
--- a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void round_f665b5() {
-  vector<float16_t, 4> res = round((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(3.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.fxc.hlsl
index 6dc96e5..e5a20da 100644
--- a/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void saturate_462535() {
-  vector<float16_t, 3> res = saturate((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.fxc.hlsl
index 599fee5..1c3d125 100644
--- a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void saturate_cd2028() {
-  vector<float16_t, 2> res = saturate((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.fxc.hlsl
index e2e1210..6ccb510 100644
--- a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void saturate_dcde71() {
-  vector<float16_t, 4> res = saturate((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.fxc.hlsl
index 4342705..ed582aa 100644
--- a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void saturate_e8df56() {
-  float16_t res = saturate(float16_t(0.0h));
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.fxc.hlsl
index 27a4b01..ec9e70c 100644
--- a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void select_10e73b() {
-  float16_t res = float16_t(0.0h);
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.fxc.hlsl
index 202fc05..6f603e0 100644
--- a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void select_1ada2a() {
-  vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.fxc.hlsl
index dd64e1f..de77fdc 100644
--- a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void select_53d518() {
-  vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.fxc.hlsl
index 24445f6..33106a8 100644
--- a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void select_830dd9() {
-  vector<float16_t, 4> res = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.fxc.hlsl
index 0d877fb..0e68586 100644
--- a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void select_86f9bd() {
-  vector<float16_t, 2> res = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.fxc.hlsl
index f399e8a..8b20ee8 100644
--- a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void select_a081f1() {
-  vector<float16_t, 4> res = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.fxc.hlsl
index 1895543..811d96e 100644
--- a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void select_ed7c13() {
-  vector<float16_t, 2> res = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.fxc.hlsl
index f007800..9090d28 100644
--- a/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sign_160933() {
-  vector<float16_t, 4> res = sign((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.fxc.hlsl
index 35361f8..987a1bd 100644
--- a/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sign_5d283a() {
-  vector<float16_t, 3> res = sign((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.fxc.hlsl
index 7f140a8..4dcd37d 100644
--- a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sign_7c85ea() {
-  float16_t res = sign(float16_t(0.0h));
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.fxc.hlsl
index ac5e5bd..817a0ad 100644
--- a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sign_ccdb3c() {
-  vector<float16_t, 2> res = sign((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.fxc.hlsl
index 474f706..655fb25 100644
--- a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sin_2c903b() {
-  vector<float16_t, 3> res = sin((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(0.999511719h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.fxc.hlsl
index 3121443..28407b0 100644
--- a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sin_3cca11() {
-  vector<float16_t, 2> res = sin((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(0.999511719h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.fxc.hlsl
index 61b62da..f9f0ea6 100644
--- a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sin_5c0712() {
-  vector<float16_t, 4> res = sin((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(0.999511719h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.fxc.hlsl
index ce25b8b..be9bfe4 100644
--- a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sin_66a59f() {
-  float16_t res = sin(float16_t(0.0h));
+  float16_t res = float16_t(0.999511719h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.fxc.hlsl
index 992ccac..93714ff 100644
--- a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sinh_0908c1() {
-  vector<float16_t, 3> res = sinh((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.174804688h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.fxc.hlsl
index 17ff268..0949246 100644
--- a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sinh_69cce2() {
-  float16_t res = sinh(float16_t(0.0h));
+  float16_t res = float16_t(1.174804688h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.fxc.hlsl
index e9b6ea2..89947c4 100644
--- a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sinh_924f19() {
-  vector<float16_t, 2> res = sinh((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.174804688h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.fxc.hlsl
index 2fd547e..1910db6 100644
--- a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sinh_ba7e25() {
-  vector<float16_t, 4> res = sinh((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.174804688h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.fxc.hlsl
index 479195e..b40313b 100644
--- a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void smoothstep_12c031() {
-  vector<float16_t, 2> res = smoothstep((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(0.5h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.fxc.hlsl
index ced8574..5a81970 100644
--- a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void smoothstep_586e12() {
-  float16_t res = smoothstep(float16_t(0.0h), float16_t(0.0h), float16_t(0.0h));
+  float16_t res = float16_t(0.5h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.fxc.hlsl
index d02eae3..c20829b 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void smoothstep_6e7a74() {
-  vector<float16_t, 3> res = smoothstep((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(0.5h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.fxc.hlsl
index 474ec39..24997eb 100644
--- a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void smoothstep_c43ebd() {
-  vector<float16_t, 4> res = smoothstep((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(0.5h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.fxc.hlsl
index ac14731..d41250b 100644
--- a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sqrt_803d1c() {
-  vector<float16_t, 4> res = sqrt((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.fxc.hlsl
index efc91d1..25a3bcd 100644
--- a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sqrt_895a0c() {
-  vector<float16_t, 3> res = sqrt((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.fxc.hlsl
index ac7cd4c..b553f3e 100644
--- a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sqrt_d9ab4d() {
-  vector<float16_t, 2> res = sqrt((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.fxc.hlsl
index ce63d1d..de08f81 100644
--- a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sqrt_ec33e9() {
-  float16_t res = sqrt(float16_t(0.0h));
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.fxc.hlsl
index ee0a830..4435d94 100644
--- a/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void step_07cb06() {
-  vector<float16_t, 2> res = step((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.fxc.hlsl
index 6f92708..8b054fb 100644
--- a/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void step_630d07() {
-  float16_t res = step(float16_t(0.0h), float16_t(0.0h));
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.fxc.hlsl
index 679912f..e06c986 100644
--- a/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void step_baa320() {
-  vector<float16_t, 4> res = step((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.fxc.hlsl
index e15af36..4ed99d4 100644
--- a/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void step_cc6b61() {
-  vector<float16_t, 3> res = step((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.fxc.hlsl
index 081aa61..89aee62 100644
--- a/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tan_539e54() {
-  vector<float16_t, 4> res = tan((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.556640625h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.fxc.hlsl
index 3bc918f..943ef23 100644
--- a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tan_9f7c9c() {
-  vector<float16_t, 2> res = tan((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.556640625h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.fxc.hlsl
index ab61bca..a71bb3b 100644
--- a/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tan_d4d491() {
-  float16_t res = tan(float16_t(0.0h));
+  float16_t res = float16_t(1.556640625h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.fxc.hlsl
index b3beb99..28f3405 100644
--- a/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tan_db0456() {
-  vector<float16_t, 3> res = tan((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.556640625h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.fxc.hlsl
index 43d81b4..bed8226 100644
--- a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tanh_06a4fe() {
-  vector<float16_t, 3> res = tanh((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(0.761230469h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.fxc.hlsl
index 83f1f22..18abfe3 100644
--- a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tanh_5b19af() {
-  float16_t res = tanh(float16_t(0.0h));
+  float16_t res = float16_t(0.761230469h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.fxc.hlsl
index 0edca60..4efdf6b 100644
--- a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tanh_6d105a() {
-  vector<float16_t, 2> res = tanh((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(0.761230469h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.fxc.hlsl
index 3403351..2b754b1 100644
--- a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tanh_e8efb3() {
-  vector<float16_t, 4> res = tanh((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(0.761230469h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.glsl
index 8a5f302..c343e94 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.glsl
@@ -21,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -44,8 +44,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:6: '' : compilation terminated
+ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -67,8 +67,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.glsl
index 5a2ccbe..1cb1e75 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.glsl
@@ -21,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -44,8 +44,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:6: '' : compilation terminated
+ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -67,8 +67,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.glsl
index da1a01f..f0a6630 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.glsl
@@ -21,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -44,8 +44,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:6: '' : compilation terminated
+ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -67,8 +67,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.fxc.hlsl
index f1f3224..5d50e02 100644
--- a/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_06794e() {
-  matrix<float16_t, 3, 3> res = transpose(matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+  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);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.fxc.hlsl
index b4a69e2..1011d3c 100644
--- a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_5edd96() {
-  matrix<float16_t, 2, 4> res = transpose(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));
+  matrix<float16_t, 2, 4> res = matrix<float16_t, 2, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.fxc.hlsl
index 208ae1c..6336c52 100644
--- a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_5f36bf() {
-  matrix<float16_t, 3, 4> res = transpose(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));
+  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);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.fxc.hlsl
index ed7f50f..ed432d6 100644
--- a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_7be8b2() {
-  matrix<float16_t, 2, 2> res = transpose(matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+  matrix<float16_t, 2, 2> res = matrix<float16_t, 2, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.fxc.hlsl
index 0ac951e..2a2a2b4 100644
--- a/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_844869() {
-  matrix<float16_t, 4, 4> res = transpose(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));
+  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);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.fxc.hlsl
index bb6fb91..34277a0 100644
--- a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_8c06ce() {
-  matrix<float16_t, 4, 3> res = transpose(matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
+  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);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.fxc.hlsl
index d92de90..7b35fe7 100644
--- a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_b9ad1f() {
-  matrix<float16_t, 2, 3> res = transpose(matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+  matrix<float16_t, 2, 3> res = matrix<float16_t, 2, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.fxc.hlsl
index 8103bfb..961226e 100644
--- a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_d6faec() {
-  matrix<float16_t, 3, 2> res = transpose(matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+  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);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.fxc.hlsl
index 0429c73..32820e1 100644
--- a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_faeb05() {
-  matrix<float16_t, 4, 2> res = transpose(matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
+  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);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.fxc.hlsl
index d25fa79..11c629d 100644
--- a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void trunc_103ab8() {
-  vector<float16_t, 3> res = trunc((float16_t(0.0h)).xxx);
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.fxc.hlsl
index 58542bd..c1cef7b 100644
--- a/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void trunc_a56109() {
-  vector<float16_t, 2> res = trunc((float16_t(0.0h)).xx);
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.fxc.hlsl
index ad2b8b9..1d4f549 100644
--- a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void trunc_cc2b0d() {
-  float16_t res = trunc(float16_t(0.0h));
+  float16_t res = float16_t(1.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.fxc.hlsl
index e591b7f..3c1b601 100644
--- a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void trunc_ce7c17() {
-  vector<float16_t, 4> res = trunc((float16_t(0.0h)).xxxx);
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.fxc.hlsl
index bd76914..3f0f269 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.fxc.hlsl
@@ -30,6 +30,3 @@
   compute_main_inner(tint_symbol.local_invocation_index);
   return;
 }
-
-FXC validation failure:
-T:\tmp\dawn-temp\dawn-src\test\tint\Shader@0x000001D7B7FE0DC0(1,13-21): error X3000: unrecognized identifier 'float16_t'
diff --git a/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.fxc.hlsl
index 12b231a..45aedfc 100644
--- a/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void abs_421ca3() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = abs(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.fxc.hlsl
index daeb777..ec16a90 100644
--- a/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void abs_538d29() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = abs(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.fxc.hlsl
index 88125e3..7aa056e 100644
--- a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void abs_5ae4fe() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = abs(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.fxc.hlsl
index 23b1f74..300c017 100644
--- a/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void abs_fd247f() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
   float16_t res = abs(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.fxc.hlsl
index 6b1ebd0..a4ea8c8 100644
--- a/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void acos_004aff() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(0.96875h)).xx;
   vector<float16_t, 2> res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/203628.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acos/203628.wgsl.expected.fxc.hlsl
index 67c0aa3..f6e45e5 100644
--- a/test/tint/builtins/gen/var/acos/203628.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/203628.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void acos_203628() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(0.96875h)).xxxx;
   vector<float16_t, 4> res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.fxc.hlsl
index 949afd2..a6fcea8 100644
--- a/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void acos_303e3d() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(0.96875h);
   float16_t res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.fxc.hlsl
index 3b14b67..d7cc816 100644
--- a/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void acos_f47057() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(0.96875h)).xxx;
   vector<float16_t, 3> res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.fxc.hlsl
index 20abaf0..84a71b1 100644
--- a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void asin_11dfda() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(0.479248047h);
   float16_t res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.fxc.hlsl
index 0c2024e..b9e8847 100644
--- a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void asin_2d8e29() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(0.479248047h)).xxx;
   vector<float16_t, 3> res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.fxc.hlsl
index 746cafe..a33cc88 100644
--- a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void asin_3cfbd4() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(0.479248047h)).xxxx;
   vector<float16_t, 4> res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.fxc.hlsl
index fabbdb2..ff28ff9 100644
--- a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void asin_b4aced() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(0.479248047h)).xx;
   vector<float16_t, 2> res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.fxc.hlsl
index d8d7a07..f353b74 100644
--- a/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.fxc.hlsl
@@ -5,7 +5,7 @@
 }
 
 void asinh_468a48() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
   float16_t res = tint_sinh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.fxc.hlsl
index 21e7f11..a64d297 100644
--- a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.fxc.hlsl
@@ -5,7 +5,7 @@
 }
 
 void asinh_95ab2b() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = tint_sinh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.fxc.hlsl
index 1312d34..5729508 100644
--- a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.fxc.hlsl
@@ -5,7 +5,7 @@
 }
 
 void asinh_ad8f8b() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = tint_sinh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.fxc.hlsl
index 28c45da..d4653d7 100644
--- a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.fxc.hlsl
@@ -5,7 +5,7 @@
 }
 
 void asinh_fb5e8c() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = tint_sinh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.fxc.hlsl
index ba6935d..015e0f1 100644
--- a/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void atan_19faea() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = atan(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.fxc.hlsl
index 4000184..6394ce3 100644
--- a/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void atan_1e1764() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = atan(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.fxc.hlsl
index cb19bf0..9efdf52 100644
--- a/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void atan_a5f421() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = atan(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.fxc.hlsl
index c6c5603..b4c0e0d 100644
--- a/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void atan_a7ba61() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
   float16_t res = atan(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.fxc.hlsl
index 3cd3e43..7e27ba3 100644
--- a/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void atan2_21dfea() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.fxc.hlsl
index 0c18f34..fbf9a01 100644
--- a/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void atan2_93febc() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.fxc.hlsl
index 0cba786..001891c 100644
--- a/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void atan2_ca698e() {
-  float16_t arg_0 = float16_t(0.0h);
-  float16_t arg_1 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
   float16_t res = atan2(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.fxc.hlsl
index 2213c7c..c6ca754 100644
--- a/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void atan2_d983ab() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.fxc.hlsl
index b4b103d..791dea5 100644
--- a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.fxc.hlsl
@@ -5,7 +5,7 @@
 }
 
 void atanh_5bf88d() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(0.5h)).xx;
   vector<float16_t, 2> res = tint_atanh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.fxc.hlsl
index e79deef..a25c266 100644
--- a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.fxc.hlsl
@@ -5,7 +5,7 @@
 }
 
 void atanh_d2d8cd() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(0.5h);
   float16_t res = tint_atanh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.fxc.hlsl
index e1d03df..335a4e8 100644
--- a/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.fxc.hlsl
@@ -5,7 +5,7 @@
 }
 
 void atanh_e3b450() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(0.5h)).xxxx;
   vector<float16_t, 4> res = tint_atanh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.fxc.hlsl
index ddda081..7a8fb48 100644
--- a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.fxc.hlsl
@@ -5,7 +5,7 @@
 }
 
 void atanh_ec4b06() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(0.5h)).xxx;
   vector<float16_t, 3> res = tint_atanh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.fxc.hlsl
index 3102431..7ac9b8d 100644
--- a/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void ceil_09bf52() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.5h)).xxx;
   vector<float16_t, 3> res = ceil(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.fxc.hlsl
index 87fd945..7fdf3af 100644
--- a/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void ceil_18c240() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.5h)).xx;
   vector<float16_t, 2> res = ceil(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.fxc.hlsl
index 3761d12..f9c9e37 100644
--- a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void ceil_4bca2a() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.5h)).xxxx;
   vector<float16_t, 4> res = ceil(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.fxc.hlsl
index 9285041..780bc35 100644
--- a/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void ceil_f3f889() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.5h);
   float16_t res = ceil(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.fxc.hlsl
index ef2952b..37fbc36 100644
--- a/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void clamp_235b29() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_2 = (float16_t(0.0h)).xx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.fxc.hlsl
index 21a3aec..e2815ba 100644
--- a/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void clamp_2c251b() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_2 = (float16_t(0.0h)).xxxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.fxc.hlsl
index 85b3969..13c67fe 100644
--- a/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void clamp_553ffb() {
-  float16_t arg_0 = float16_t(0.0h);
-  float16_t arg_1 = float16_t(0.0h);
-  float16_t arg_2 = float16_t(0.0h);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.fxc.hlsl
index fd0e57e..6e1ea87 100644
--- a/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void clamp_b195eb() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_2 = (float16_t(0.0h)).xxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.fxc.hlsl
index 296baa1..056bcc1 100644
--- a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void cross_9857cb() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.fxc.hlsl
index 2fc1013..92e8dd8 100644
--- a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
 vector<float16_t, 4> tint_degrees(vector<float16_t, 4> param_0) {
-  return param_0 * 57.295779513082322865;
+  return param_0 * 57.295779513082323;
 }
 
 void degrees_3055d3() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = tint_degrees(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.fxc.hlsl
index 4d2d201..dadf881 100644
--- a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
 float16_t tint_degrees(float16_t param_0) {
-  return param_0 * 57.295779513082322865;
+  return param_0 * 57.295779513082323;
 }
 
 void degrees_5e9805() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
   float16_t res = tint_degrees(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.fxc.hlsl
index 71e7b58..62b4e4a 100644
--- a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
 vector<float16_t, 3> tint_degrees(vector<float16_t, 3> param_0) {
-  return param_0 * 57.295779513082322865;
+  return param_0 * 57.295779513082323;
 }
 
 void degrees_dfe8f4() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = tint_degrees(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.fxc.hlsl
index cee3765..8199c95 100644
--- a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
 vector<float16_t, 2> tint_degrees(vector<float16_t, 2> param_0) {
-  return param_0 * 57.295779513082322865;
+  return param_0 * 57.295779513082323;
 }
 
 void degrees_f59715() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = tint_degrees(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.fxc.hlsl
index 6488184..fe01952 100644
--- a/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void determinant_32bfde() {
-  matrix<float16_t, 4, 4> arg_0 = 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);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.fxc.hlsl
index 08dfa53..268dad4 100644
--- a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void determinant_d7c86f() {
-  matrix<float16_t, 3, 3> arg_0 = matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.fxc.hlsl
index e3bcce0..40b6555 100644
--- a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void determinant_fc12a5() {
-  matrix<float16_t, 2, 2> arg_0 = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.fxc.hlsl
index 0804174..e477148 100644
--- a/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void distance_7272f3() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.fxc.hlsl
index 4377906..2082da1 100644
--- a/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void distance_7d201f() {
-  float16_t arg_0 = float16_t(0.0h);
-  float16_t arg_1 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
   float16_t res = distance(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.fxc.hlsl
index b093422..9248050 100644
--- a/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void distance_892a5d() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.fxc.hlsl
index b3c81f0..a269e71 100644
--- a/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void distance_928fa0() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.fxc.hlsl
index a32263f..eebcbd1 100644
--- a/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void dot_8e40f1() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.fxc.hlsl
index 83129f5..19b031c 100644
--- a/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void dot_cd5a04() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.fxc.hlsl
index f193fc7..4d83a3d 100644
--- a/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void dot_d0d179() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.fxc.hlsl
index 0c64a84..0bde5ba 100644
--- a/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp_13806d() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = exp(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.fxc.hlsl
index 4a68530..f655757 100644
--- a/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp_2e08e2() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = exp(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.fxc.hlsl
index 9caffbf..18197eb 100644
--- a/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp_611a87() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = exp(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.fxc.hlsl
index 1b4b45a..ef16570 100644
--- a/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp_c18fe9() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
   float16_t res = exp(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.fxc.hlsl
index 4736202..2dd1f47 100644
--- a/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp2_151a4c() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = exp2(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.fxc.hlsl
index 43e987d..9e701cd 100644
--- a/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp2_751377() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = exp2(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.fxc.hlsl
index 2cd60f8..cc6d586 100644
--- a/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp2_b408e4() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
   float16_t res = exp2(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.fxc.hlsl
index bd4753b..bc6ba12 100644
--- a/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void exp2_ffa827() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = exp2(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.fxc.hlsl
index a31db9b..9788453 100644
--- a/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void faceForward_524986() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_2 = (float16_t(0.0h)).xxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.fxc.hlsl
index 69747ce..fa40b32 100644
--- a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void faceForward_cc63dc() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_2 = (float16_t(0.0h)).xxxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.fxc.hlsl
index 8f3d052..040f38b 100644
--- a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void faceForward_fb0f2e() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_2 = (float16_t(0.0h)).xx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.fxc.hlsl
index d326422..7ce3aad 100644
--- a/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void floor_3802c0() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.5h)).xxx;
   vector<float16_t, 3> res = floor(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.fxc.hlsl
index 0bf7dca..b20ecfd 100644
--- a/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void floor_84658c() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.5h)).xx;
   vector<float16_t, 2> res = floor(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.fxc.hlsl
index 6b49520..ff59a5f 100644
--- a/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void floor_a2d31b() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.5h)).xxxx;
   vector<float16_t, 4> res = floor(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.fxc.hlsl
index 622c043..016c2d6 100644
--- a/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void floor_b6e09c() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.5h);
   float16_t res = floor(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.fxc.hlsl
index acfcf1a..15fe3b9 100644
--- a/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void fma_ab7818() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_2 = (float16_t(0.0h)).xxxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.fxc.hlsl
index 84e6b2a..3d73b2d 100644
--- a/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void fma_bf21b6() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_2 = (float16_t(0.0h)).xx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.fxc.hlsl
index d030535..f5bb357 100644
--- a/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void fma_c8abb3() {
-  float16_t arg_0 = float16_t(0.0h);
-  float16_t arg_1 = float16_t(0.0h);
-  float16_t arg_2 = float16_t(0.0h);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.fxc.hlsl
index 64f994a..fd5db2b 100644
--- a/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void fma_e7abdc() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_2 = (float16_t(0.0h)).xxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.fxc.hlsl
index 0c48407..05151f2 100644
--- a/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void fract_181aa9() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.25h)).xx;
   vector<float16_t, 2> res = frac(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.fxc.hlsl
index 56d1880..8a803ae 100644
--- a/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void fract_498c77() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.25h)).xxxx;
   vector<float16_t, 4> res = frac(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.fxc.hlsl
index 4b65f46..d7a3f2f 100644
--- a/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void fract_958a1d() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.25h)).xxx;
   vector<float16_t, 3> res = frac(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.fxc.hlsl
index e8e9fa1..572ff88 100644
--- a/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void fract_eb38ce() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.25h);
   float16_t res = frac(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.fxc.hlsl
index 507defa..d6b3d6f 100644
--- a/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.fxc.hlsl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
 struct frexp_result_vec4_f16 {
-  vector<float16_t, 4> sig;
+  vector<float16_t, 4> fract;
   int4 exp;
 };
 frexp_result_vec4_f16 tint_frexp(vector<float16_t, 4> param_0) {
   vector<float16_t, 4> exp;
-  vector<float16_t, 4> sig = frexp(param_0, exp);
-  frexp_result_vec4_f16 result = {sig, int4(exp)};
+  vector<float16_t, 4> fract = frexp(param_0, exp);
+  frexp_result_vec4_f16 result = {fract, int4(exp)};
   return result;
 }
 
 void frexp_3dd21e() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   frexp_result_vec4_f16 res = tint_frexp(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.fxc.hlsl
index 765ece2..9672e1d 100644
--- a/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.fxc.hlsl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
 struct frexp_result_f16 {
-  float16_t sig;
+  float16_t fract;
   int exp;
 };
 frexp_result_f16 tint_frexp(float16_t param_0) {
   float16_t exp;
-  float16_t sig = frexp(param_0, exp);
-  frexp_result_f16 result = {sig, int(exp)};
+  float16_t fract = frexp(param_0, exp);
+  frexp_result_f16 result = {fract, int(exp)};
   return result;
 }
 
 void frexp_5257dd() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
   frexp_result_f16 res = tint_frexp(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.fxc.hlsl
index 5b4c0ab..5f203b8 100644
--- a/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.fxc.hlsl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
 struct frexp_result_vec2_f16 {
-  vector<float16_t, 2> sig;
+  vector<float16_t, 2> fract;
   int2 exp;
 };
 frexp_result_vec2_f16 tint_frexp(vector<float16_t, 2> param_0) {
   vector<float16_t, 2> exp;
-  vector<float16_t, 2> sig = frexp(param_0, exp);
-  frexp_result_vec2_f16 result = {sig, int2(exp)};
+  vector<float16_t, 2> fract = frexp(param_0, exp);
+  frexp_result_vec2_f16 result = {fract, int2(exp)};
   return result;
 }
 
 void frexp_5f47bf() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   frexp_result_vec2_f16 res = tint_frexp(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.fxc.hlsl
index 862b97d..133b5a6 100644
--- a/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.fxc.hlsl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
 struct frexp_result_vec3_f16 {
-  vector<float16_t, 3> sig;
+  vector<float16_t, 3> fract;
   int3 exp;
 };
 frexp_result_vec3_f16 tint_frexp(vector<float16_t, 3> param_0) {
   vector<float16_t, 3> exp;
-  vector<float16_t, 3> sig = frexp(param_0, exp);
-  frexp_result_vec3_f16 result = {sig, int3(exp)};
+  vector<float16_t, 3> fract = frexp(param_0, exp);
+  frexp_result_vec3_f16 result = {fract, int3(exp)};
   return result;
 }
 
 void frexp_ae4a66() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   frexp_result_vec3_f16 res = tint_frexp(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.fxc.hlsl
index 6353e2e..4f961b9 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void inverseSqrt_440300() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
   float16_t res = rsqrt(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.fxc.hlsl
index 2f8cf5c..3a01bfd 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void inverseSqrt_5f51f8() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = rsqrt(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.fxc.hlsl
index 2531da9..eb77afa 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void inverseSqrt_b85ebd() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = rsqrt(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.fxc.hlsl
index 681772a..1aef13c 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void inverseSqrt_cbdc70() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = rsqrt(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.fxc.hlsl
index 4e2e247..2d93cd8 100644
--- a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.fxc.hlsl
@@ -31,7 +31,3 @@
   ldexp_082c1f();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x0000013446CBE820(2,3-11): error X3000: unrecognized identifier 'float16_t'
-C:\src\dawn\test\tint\Shader@0x0000013446CBE820(2,13-17): error X3000: unrecognized identifier 'arg_0'
-
diff --git a/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.fxc.hlsl
index a706054..af8ff2b 100644
--- a/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.fxc.hlsl
@@ -31,7 +31,3 @@
   ldexp_217a31();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000002B2A1EB5A40(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-C:\src\dawn\test\tint\Shader@0x000002B2A1EB5A40(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.fxc.hlsl
index 3658f7c..87d9984 100644
--- a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.fxc.hlsl
@@ -32,7 +32,3 @@
   ldexp_3d90b4();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x00000297E3FBEC10(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-C:\src\dawn\test\tint\Shader@0x00000297E3FBEC10(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.fxc.hlsl
index e3d2312..339d9e8 100644
--- a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.fxc.hlsl
@@ -32,7 +32,3 @@
   ldexp_624e0c();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x0000026F55AA1260(2,3-11): error X3000: unrecognized identifier 'float16_t'
-C:\src\dawn\test\tint\Shader@0x0000026F55AA1260(2,13-17): error X3000: unrecognized identifier 'arg_0'
-
diff --git a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.fxc.hlsl
index 2eea313..1779269 100644
--- a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.fxc.hlsl
@@ -32,7 +32,3 @@
   ldexp_7485ce();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000001FA5B030020(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-C:\src\dawn\test\tint\Shader@0x000001FA5B030020(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.fxc.hlsl
index b2fa945..5b49144 100644
--- a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.fxc.hlsl
@@ -32,7 +32,3 @@
   ldexp_7fa13c();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000002AB3EB30940(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-C:\src\dawn\test\tint\Shader@0x000002AB3EB30940(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.fxc.hlsl
index 38e01ce..a71f03e 100644
--- a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.fxc.hlsl
@@ -31,7 +31,3 @@
   ldexp_8a0c2f();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000001B927CE7790(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-C:\src\dawn\test\tint\Shader@0x000001B927CE7790(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.fxc.hlsl
index a48acb3..583d17c 100644
--- a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.fxc.hlsl
@@ -31,7 +31,3 @@
   ldexp_8e43e9();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000002129BF55A00(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
-C:\src\dawn\test\tint\Shader@0x000002129BF55A00(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.fxc.hlsl
index f6fed76..e38b06e 100644
--- a/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log_6ff86f() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = log(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.fxc.hlsl
index c8f8fb2..f2bc419 100644
--- a/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log_8f0e32() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = log(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.fxc.hlsl
index 1842fc3..98aae52 100644
--- a/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log_c9f489() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
   float16_t res = log(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.fxc.hlsl
index 8e10438..6bd39bf 100644
--- a/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log_cdbdc1() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = log(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.fxc.hlsl
index a064161..1972795 100644
--- a/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log2_38b478() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = log2(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/log2/776088.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log2/776088.wgsl.expected.fxc.hlsl
index 00d4694..2830287 100644
--- a/test/tint/builtins/gen/var/log2/776088.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/776088.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log2_776088() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = log2(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.fxc.hlsl
index b2942db..bc650ec 100644
--- a/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log2_8c10b3() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
   float16_t res = log2(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.fxc.hlsl
index c887b557..86baba4 100644
--- a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void log2_fb9f0b() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = log2(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.fxc.hlsl
index 33ea840..9dbfddd 100644
--- a/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void max_111ac0() {
-  float16_t arg_0 = float16_t(0.0h);
-  float16_t arg_1 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
   float16_t res = max(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/max/34956e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/34956e.wgsl.expected.fxc.hlsl
index 4479358..ecc7eec 100644
--- a/test/tint/builtins/gen/var/max/34956e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/34956e.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void max_34956e() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/max/445169.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/445169.wgsl.expected.fxc.hlsl
index 517ecfd..6ff78e8 100644
--- a/test/tint/builtins/gen/var/max/445169.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/445169.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void max_445169() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.fxc.hlsl
index 5f4ea88..7922c1c 100644
--- a/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void max_e14f2b() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.fxc.hlsl
index 62d0a13..e473753 100644
--- a/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void min_7c710a() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.fxc.hlsl
index a92ab98..4e9158f 100644
--- a/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void min_ab0acd() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.fxc.hlsl
index 8274c9c..ca86379 100644
--- a/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void min_ac84d6() {
-  float16_t arg_0 = float16_t(0.0h);
-  float16_t arg_1 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
   float16_t res = min(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.fxc.hlsl
index b29a781..64947bb 100644
--- a/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void min_e780f9() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.fxc.hlsl
index 7a960c5..77f7ac1 100644
--- a/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void mix_38cbbb() {
-  float16_t arg_0 = float16_t(0.0h);
-  float16_t arg_1 = float16_t(0.0h);
-  float16_t arg_2 = float16_t(0.0h);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.fxc.hlsl
index 28746be..454ca55 100644
--- a/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void mix_63f2fd() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_2 = (float16_t(0.0h)).xxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.fxc.hlsl
index bc20a21..12a5507 100644
--- a/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void mix_98ee3e() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_2 = (float16_t(0.0h)).xx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.fxc.hlsl
index b076788..b502d44 100644
--- a/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void mix_c1aec6() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
-  float16_t arg_2 = float16_t(0.0h);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.fxc.hlsl
index 9a64812..2e95ba5 100644
--- a/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void mix_e46a83() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
-  float16_t arg_2 = float16_t(0.0h);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.fxc.hlsl
index bc1e9cc..f2d3f27 100644
--- a/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void mix_ee2468() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_2 = (float16_t(0.0h)).xxxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.fxc.hlsl
index 07c8f81..0c528fc 100644
--- a/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void mix_f1a543() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
-  float16_t arg_2 = float16_t(0.0h);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.fxc.hlsl
index f603a26..f15ea89 100644
--- a/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.fxc.hlsl
@@ -11,7 +11,7 @@
 }
 
 void modf_45005f() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(-1.5h)).xxx;
   modf_result_vec3_f16 res = tint_modf(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.fxc.hlsl
index a744ba3..8fe20b5 100644
--- a/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.fxc.hlsl
@@ -11,7 +11,7 @@
 }
 
 void modf_8dbbbf() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(-1.5h);
   modf_result_f16 res = tint_modf(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/modf/995934.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/modf/995934.wgsl.expected.fxc.hlsl
index c859c5c..e39a700 100644
--- a/test/tint/builtins/gen/var/modf/995934.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/995934.wgsl.expected.fxc.hlsl
@@ -11,7 +11,7 @@
 }
 
 void modf_995934() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(-1.5h)).xxxx;
   modf_result_vec4_f16 res = tint_modf(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.fxc.hlsl
index c31eba6..abafca1 100644
--- a/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.fxc.hlsl
@@ -11,7 +11,7 @@
 }
 
 void modf_a545b9() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(-1.5h)).xx;
   modf_result_vec2_f16 res = tint_modf(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.fxc.hlsl
index 446e72a..644f646 100644
--- a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void normalize_39d5ec() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = normalize(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.fxc.hlsl
index aefa43f..e073fb4 100644
--- a/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void normalize_7990f3() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = normalize(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.fxc.hlsl
index 99e6565..2e49b0d 100644
--- a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void normalize_b8cb8d() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = normalize(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.fxc.hlsl
index 7b02c07..313dc5d 100644
--- a/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void pow_4f33b2() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.fxc.hlsl
index 4af4f1a..3884960 100644
--- a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void pow_ce9ef5() {
-  float16_t arg_0 = float16_t(0.0h);
-  float16_t arg_1 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
   float16_t res = pow(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.fxc.hlsl
index fd19bd5..acaaffb 100644
--- a/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void pow_f37b25() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.fxc.hlsl
index 90c9918..09cd3e8 100644
--- a/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void pow_fa5429() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.fxc.hlsl
index 697a96d..5046cda 100644
--- a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
 float16_t tint_radians(float16_t param_0) {
-  return param_0 * 0.017453292519943295474;
+  return param_0 * 0.017453292519943295;
 }
 
 void radians_208fd9() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
   float16_t res = tint_radians(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.fxc.hlsl
index b93f28d..a28ca62 100644
--- a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
 vector<float16_t, 4> tint_radians(vector<float16_t, 4> param_0) {
-  return param_0 * 0.017453292519943295474;
+  return param_0 * 0.017453292519943295;
 }
 
 void radians_44f20b() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = tint_radians(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.fxc.hlsl
index d824c99..ef48984 100644
--- a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
 vector<float16_t, 3> tint_radians(vector<float16_t, 3> param_0) {
-  return param_0 * 0.017453292519943295474;
+  return param_0 * 0.017453292519943295;
 }
 
 void radians_7ea4c7() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = tint_radians(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.fxc.hlsl
index 61dd8b0..5c2608d 100644
--- a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
 vector<float16_t, 2> tint_radians(vector<float16_t, 2> param_0) {
-  return param_0 * 0.017453292519943295474;
+  return param_0 * 0.017453292519943295;
 }
 
 void radians_fbacf0() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = tint_radians(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.fxc.hlsl
index 84245f1..f99ed02 100644
--- a/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void reflect_310de5() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.fxc.hlsl
index a9f8023..e89e032 100644
--- a/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void reflect_61ca21() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.fxc.hlsl
index 36a346f..d0cec07 100644
--- a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void reflect_bb15ac() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.fxc.hlsl
index bb32e3b..33db6ca 100644
--- a/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void refract_0594ba() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
-  float16_t arg_2 = float16_t(0.0h);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.fxc.hlsl
index b4f13e0..96b3d5f 100644
--- a/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void refract_570cb3() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
-  float16_t arg_2 = float16_t(0.0h);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.fxc.hlsl
index 3f0f6be..1ec42f0 100644
--- a/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void refract_8984af() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
-  float16_t arg_2 = float16_t(0.0h);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.fxc.hlsl
index 9ac2d12..ed3e148 100644
--- a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void round_9078ef() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(3.3984375h);
   float16_t res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.fxc.hlsl
index 4e5f123..c09e44f 100644
--- a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void round_d87e84() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(3.3984375h)).xx;
   vector<float16_t, 2> res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.fxc.hlsl
index 921ccde..762bb62 100644
--- a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void round_e1bba2() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(3.3984375h)).xxx;
   vector<float16_t, 3> res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.fxc.hlsl
index 5a06695..fd541db 100644
--- a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void round_f665b5() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(3.3984375h)).xxxx;
   vector<float16_t, 4> res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.fxc.hlsl
index 5f02aae..7195459 100644
--- a/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void saturate_462535() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(2.0h)).xxx;
   vector<float16_t, 3> res = saturate(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.fxc.hlsl
index 0ef67b8..1fb11bf 100644
--- a/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void saturate_cd2028() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(2.0h)).xx;
   vector<float16_t, 2> res = saturate(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.fxc.hlsl
index 3f92fa4..a77de73 100644
--- a/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void saturate_dcde71() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(2.0h)).xxxx;
   vector<float16_t, 4> res = saturate(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.fxc.hlsl
index 5c2b820..abf5769 100644
--- a/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void saturate_e8df56() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(2.0h);
   float16_t res = saturate(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.fxc.hlsl
index 91c838c..a2065d3 100644
--- a/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void select_10e73b() {
-  float16_t arg_0 = float16_t(0.0h);
-  float16_t arg_1 = float16_t(0.0h);
+  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);
 }
diff --git a/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.fxc.hlsl
index ac216fa..93e4d37 100644
--- a/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void select_1ada2a() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
+  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);
 }
diff --git a/test/tint/builtins/gen/var/select/53d518.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/53d518.wgsl.expected.fxc.hlsl
index 50237cf..4949509 100644
--- a/test/tint/builtins/gen/var/select/53d518.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/53d518.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void select_53d518() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
+  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);
 }
diff --git a/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.fxc.hlsl
index c171292..100c558 100644
--- a/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void select_830dd9() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
+  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);
 }
diff --git a/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.fxc.hlsl
index f4865d5..5deab4e 100644
--- a/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void select_86f9bd() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
+  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);
 }
diff --git a/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.fxc.hlsl
index 6a64b7e..a9964cf 100644
--- a/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void select_a081f1() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
+  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);
 }
diff --git a/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.fxc.hlsl
index 23bf4d5..69ac474 100644
--- a/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void select_ed7c13() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
+  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);
 }
diff --git a/test/tint/builtins/gen/var/sign/160933.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sign/160933.wgsl.expected.fxc.hlsl
index 3359004..472eafe 100644
--- a/test/tint/builtins/gen/var/sign/160933.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/160933.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void sign_160933() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> res = sign(arg_0);
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = vector<float16_t, 4>(sign(arg_0));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.fxc.hlsl
index 9d8131c..783023d 100644
--- a/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void sign_5d283a() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> res = sign(arg_0);
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = vector<float16_t, 3>(sign(arg_0));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.fxc.hlsl
index ae76047..f0ff48b 100644
--- a/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void sign_7c85ea() {
-  float16_t arg_0 = float16_t(0.0h);
-  float16_t res = sign(arg_0);
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = float16_t(sign(arg_0));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.fxc.hlsl
index 735e750..da1980d 100644
--- a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void sign_ccdb3c() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> res = sign(arg_0);
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = vector<float16_t, 2>(sign(arg_0));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.fxc.hlsl
index 8b8d223..8a7b8bf 100644
--- a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sin_2c903b() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.5703125h)).xxx;
   vector<float16_t, 3> res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.fxc.hlsl
index 9fe0a31..4925733 100644
--- a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sin_3cca11() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.5703125h)).xx;
   vector<float16_t, 2> res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.fxc.hlsl
index 26a60e2..419dd04 100644
--- a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sin_5c0712() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.5703125h)).xxxx;
   vector<float16_t, 4> res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.fxc.hlsl
index 4ce2ce2..0870013 100644
--- a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sin_66a59f() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.5703125h);
   float16_t res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.fxc.hlsl
index 010bd52..95843ac 100644
--- a/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sinh_0908c1() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = sinh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.fxc.hlsl
index 1204a4a..9ad1a40 100644
--- a/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sinh_69cce2() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
   float16_t res = sinh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.fxc.hlsl
index c12d5f5..85a043ae 100644
--- a/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sinh_924f19() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = sinh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.fxc.hlsl
index beeee6f..7d7ab56 100644
--- a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sinh_ba7e25() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = sinh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.fxc.hlsl
index e31f56f..f5f68c8 100644
--- a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void smoothstep_12c031() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_2 = (float16_t(0.0h)).xx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.fxc.hlsl
index b5bdb64..dc89e99 100644
--- a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void smoothstep_586e12() {
-  float16_t arg_0 = float16_t(0.0h);
-  float16_t arg_1 = float16_t(0.0h);
-  float16_t arg_2 = float16_t(0.0h);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.fxc.hlsl
index 6fb59fa..b8c9cd2 100644
--- a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void smoothstep_6e7a74() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_2 = (float16_t(0.0h)).xxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.fxc.hlsl
index f41d30c..9254eec 100644
--- a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
 void smoothstep_c43ebd() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_2 = (float16_t(0.0h)).xxxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.fxc.hlsl
index 41d7162..fbd9552 100644
--- a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sqrt_803d1c() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = sqrt(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.fxc.hlsl
index a0cf37a..833715e 100644
--- a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sqrt_895a0c() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = sqrt(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.fxc.hlsl
index 64f1ffc..3fffdac 100644
--- a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sqrt_d9ab4d() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = sqrt(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.fxc.hlsl
index 3fedcd9..bacd81f 100644
--- a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void sqrt_ec33e9() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
   float16_t res = sqrt(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.fxc.hlsl
index e7aee04..ce0a99c 100644
--- a/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void step_07cb06() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
-  vector<float16_t, 2> arg_1 = (float16_t(0.0h)).xx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/step/630d07.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/step/630d07.wgsl.expected.fxc.hlsl
index 4818e72..7c9114f 100644
--- a/test/tint/builtins/gen/var/step/630d07.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/630d07.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void step_630d07() {
-  float16_t arg_0 = float16_t(0.0h);
-  float16_t arg_1 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
   float16_t res = step(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/step/baa320.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/step/baa320.wgsl.expected.fxc.hlsl
index 8328420..7a79030 100644
--- a/test/tint/builtins/gen/var/step/baa320.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/baa320.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void step_baa320() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
-  vector<float16_t, 4> arg_1 = (float16_t(0.0h)).xxxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.fxc.hlsl
index 29ed50d..5d91570 100644
--- a/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 SKIP: FAILED
 
 void step_cc6b61() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
-  vector<float16_t, 3> arg_1 = (float16_t(0.0h)).xxx;
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.fxc.hlsl
index a89a0d1..a498e41 100644
--- a/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tan_539e54() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = tan(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.fxc.hlsl
index 1e2d978..447c915 100644
--- a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tan_9f7c9c() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = tan(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.fxc.hlsl
index 44dc465..800f88a 100644
--- a/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tan_d4d491() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
   float16_t res = tan(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.fxc.hlsl
index 7520c26..62afb00 100644
--- a/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tan_db0456() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = tan(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.fxc.hlsl
index 09a20f1..745423a 100644
--- a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tanh_06a4fe() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = tanh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.fxc.hlsl
index 796f6e4..d73254e 100644
--- a/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tanh_5b19af() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.0h);
   float16_t res = tanh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.fxc.hlsl
index 5011426..6911b65 100644
--- a/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tanh_6d105a() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = tanh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.fxc.hlsl
index 8c4f0ad..dfe275a 100644
--- a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void tanh_e8efb3() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = tanh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.glsl
index 8a5f302..c343e94 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.glsl
@@ -21,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -44,8 +44,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:6: '' : compilation terminated
+ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -67,8 +67,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.glsl
index 5a2ccbe..1cb1e75 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.glsl
@@ -21,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -44,8 +44,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:6: '' : compilation terminated
+ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -67,8 +67,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.glsl
index da1a01f..f0a6630 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.glsl
@@ -21,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -44,8 +44,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:6: '' : compilation terminated
+ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -67,8 +67,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.fxc.hlsl
index 866b199..9b49ef4 100644
--- a/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_06794e() {
-  matrix<float16_t, 3, 3> arg_0 = matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.fxc.hlsl
index affbe8d..f7be249 100644
--- a/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_5edd96() {
-  matrix<float16_t, 4, 2> arg_0 = 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);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.fxc.hlsl
index dcca576..1cccc40 100644
--- a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_5f36bf() {
-  matrix<float16_t, 4, 3> arg_0 = 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);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.fxc.hlsl
index 14a14de..fb00d88 100644
--- a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_7be8b2() {
-  matrix<float16_t, 2, 2> arg_0 = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.fxc.hlsl
index 251fa54..50704bf 100644
--- a/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_844869() {
-  matrix<float16_t, 4, 4> arg_0 = 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);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.fxc.hlsl
index e731f0c..bd80678 100644
--- a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_8c06ce() {
-  matrix<float16_t, 3, 4> arg_0 = matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.fxc.hlsl
index 8827e68..f9fea08 100644
--- a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_b9ad1f() {
-  matrix<float16_t, 3, 2> arg_0 = matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.fxc.hlsl
index a8c55bc..9ab4756 100644
--- a/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_d6faec() {
-  matrix<float16_t, 2, 3> arg_0 = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.fxc.hlsl
index 03aad4c..afec1bc 100644
--- a/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void transpose_faeb05() {
-  matrix<float16_t, 2, 4> arg_0 = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  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);
 }
 
diff --git a/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.fxc.hlsl
index 66c441a..a29214b 100644
--- a/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void trunc_103ab8() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.5h)).xxx;
   vector<float16_t, 3> res = trunc(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.fxc.hlsl
index 0e3d94d..a14e067 100644
--- a/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void trunc_a56109() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.5h)).xx;
   vector<float16_t, 2> res = trunc(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.fxc.hlsl
index 2f7fe08..5f6bcb2 100644
--- a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void trunc_cc2b0d() {
-  float16_t arg_0 = float16_t(0.0h);
+  float16_t arg_0 = float16_t(1.5h);
   float16_t res = trunc(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.fxc.hlsl
index 232fb88..b5a7379 100644
--- a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 SKIP: FAILED
 
 void trunc_ce7c17() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.5h)).xxxx;
   vector<float16_t, 4> res = trunc(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.fxc.hlsl
index 8b6f290..3f0f269 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.fxc.hlsl
@@ -30,6 +30,3 @@
   compute_main_inner(tint_symbol.local_invocation_index);
   return;
 }
-
-FXC validation failure:
-T:\tmp\dawn-temp\dawn-src\test\tint\Shader@0x000001D6A00D1F90(1,13-21): error X3000: unrecognized identifier 'float16_t'
diff --git a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.fxc.hlsl
index 7754653..f73f9ca 100644
--- a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
-SKIP: FXC rejects non-uniform texture sample operation in output
+SKIP: FAILED
 
 diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     v = textureSample(t, s, vec2(0, 0));
-        ^^^^^^^^^^^^^
+        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 diagnostic_filtering/for_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   for (; x > v.x; ) @diagnostic(warning, derivative_uniformity) {
@@ -10,7 +10,7 @@
 
 diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
     v = textureSample(t, s, vec2(0, 0));
-        ^^^^^^^^^^^^^
+        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Texture2D<float4> t : register(t1, space0);
 SamplerState s : register(s2, space0);
diff --git a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.fxc.hlsl
index 0f012af..ce4b9aa 100644
--- a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
-SKIP: FXC rejects non-uniform texture sample operation in output
+SKIP: FAILED
 
 diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     v = textureSample(t, s, vec2(0, 0));
-        ^^^^^^^^^^^^^
+        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 diagnostic_filtering/while_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   while (x > v.x) @diagnostic(warning, derivative_uniformity) {
@@ -10,7 +10,7 @@
 
 diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
     v = textureSample(t, s, vec2(0, 0));
-        ^^^^^^^^^^^^^
+        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Texture2D<float4> t : register(t1, space0);
 SamplerState s : register(s2, space0);
diff --git a/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.fxc.hlsl
index 4026222..a788be3 100644
--- a/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.fxc.hlsl
@@ -7,8 +7,3 @@
   const matrix<float16_t, 3, 3> r = (a + b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002112F6749E0(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002112F6749E0(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002112F6749E0(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.fxc.hlsl
index d9f60f7..e2ae399 100644
--- a/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.fxc.hlsl
@@ -2,9 +2,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float16_t r = (float16_t(1.0h) + float16_t(2.0h));
+  const float16_t a = float16_t(1.0h);
+  const float16_t b = float16_t(2.0h);
+  const float16_t r = (a + b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000026EC74E4450(3,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.fxc.hlsl
index ef38070..5b71823 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.fxc.hlsl
@@ -7,6 +7,3 @@
   const vector<float16_t, 3> r = (a + b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001CF2FA94E40(3,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.fxc.hlsl
index f98df2a..6933823 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.fxc.hlsl
@@ -3,10 +3,7 @@
 [numthreads(1, 1, 1)]
 void f() {
   const vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
-  const vector<float16_t, 3> r = (a + float16_t(4.0h));
+  const float16_t b = float16_t(4.0h);
+  const vector<float16_t, 3> r = (a + b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000023450E536E0(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000023450E536E0(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.fxc.hlsl
index cbca96a..d44bde9 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.fxc.hlsl
@@ -7,8 +7,3 @@
   const vector<float16_t, 3> r = (a + b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001C79E5B27F0(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001C79E5B27F0(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001C79E5B27F0(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.fxc.hlsl
index afcbb54..4ad12f8 100644
--- a/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.fxc.hlsl
@@ -2,9 +2,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float16_t r = (float16_t(1.0h) / float16_t(2.0h));
+  const float16_t a = float16_t(1.0h);
+  const float16_t b = float16_t(2.0h);
+  const float16_t r = (a / b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000232390C4180(3,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.fxc.hlsl
index 87a855f..7653afd 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.fxc.hlsl
@@ -7,6 +7,3 @@
   const vector<float16_t, 3> r = (a / b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001DE5F7F2A90(3,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.fxc.hlsl
index 0715818..45a869b 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.fxc.hlsl
@@ -3,10 +3,7 @@
 [numthreads(1, 1, 1)]
 void f() {
   const vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
-  const vector<float16_t, 3> r = (a / float16_t(4.0h));
+  const float16_t b = float16_t(4.0h);
+  const vector<float16_t, 3> r = (a / b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001FA1E656B40(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001FA1E656B40(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.fxc.hlsl
index 6952b71..8c621cc 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.fxc.hlsl
@@ -7,8 +7,3 @@
   const vector<float16_t, 3> r = (a / b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002A238932BC0(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002A238932BC0(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002A238932BC0(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.fxc.hlsl
index 85a7e0d..4b5bc7c 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.fxc.hlsl
@@ -2,9 +2,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float16_t r = (float16_t(1.0h) / float16_t(0.0h));
+  const float16_t a = float16_t(1.0h);
+  const float16_t b = float16_t(0.0h);
+  const float16_t r = (a / b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001E4C7696450(3,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.fxc.hlsl
index 63289fa..3030ee6 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.fxc.hlsl
@@ -7,6 +7,3 @@
   const vector<float16_t, 3> r = (a / b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001A1C20B2D10(3,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.fxc.hlsl
index 3c4b995..b651f73 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.fxc.hlsl
@@ -3,10 +3,7 @@
 [numthreads(1, 1, 1)]
 void f() {
   const vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
-  const vector<float16_t, 3> r = (a / float16_t(0.0h));
+  const float16_t b = float16_t(0.0h);
+  const vector<float16_t, 3> r = (a / b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000198035B3410(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000198035B3410(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.fxc.hlsl
index e14e32c..a3ba084 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.fxc.hlsl
@@ -7,8 +7,3 @@
   const vector<float16_t, 3> r = (a / b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002160BCD37C0(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002160BCD37C0(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002160BCD37C0(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.fxc.hlsl
index a4e405f..0ea49f8 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.fxc.hlsl
@@ -7,7 +7,3 @@
   const float16_t r = (a / (b + b));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000154BF386B50(3,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000154BF386B50(3,13): error X3000: unrecognized identifier 'a'
-
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f16.wgsl.expected.fxc.hlsl
index bf0993f..88a509d 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f16.wgsl.expected.fxc.hlsl
@@ -7,7 +7,3 @@
   const vector<float16_t, 3> r = (a / (b + b));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001AAC9012BB0(3,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001AAC9012BB0(3,13): error X3000: unrecognized identifier 'a'
-
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f16.wgsl.expected.fxc.hlsl
index d67a196..1f2b4da 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f16.wgsl.expected.fxc.hlsl
@@ -7,8 +7,3 @@
   const vector<float16_t, 3> r = (a / (b + b));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000015421E739B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000015421E739B0(4,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000015421E739B0(4,13): error X3000: unrecognized identifier 'b'
-
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.fxc.hlsl
index 7fd5723..588d96f 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.fxc.hlsl
@@ -7,8 +7,3 @@
   const vector<float16_t, 3> r = (a / (b + b));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000022203DE1EB0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000022203DE1EB0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000022203DE1EB0(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.fxc.hlsl
index 2ffd29e..8b1f507 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.fxc.hlsl
@@ -7,7 +7,3 @@
   const float16_t r = (a / b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000247BCDC5A20(3,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000247BCDC5A20(3,13): error X3000: unrecognized identifier 'a'
-
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f16.wgsl.expected.fxc.hlsl
index 77afce8..9f591f4 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f16.wgsl.expected.fxc.hlsl
@@ -7,7 +7,3 @@
   const vector<float16_t, 3> r = (a / b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002AA30442DD0(3,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002AA30442DD0(3,13): error X3000: unrecognized identifier 'a'
-
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f16.wgsl.expected.fxc.hlsl
index cf89ada..a2aefbd 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f16.wgsl.expected.fxc.hlsl
@@ -7,8 +7,3 @@
   const vector<float16_t, 3> r = (a / b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001C9783D4180(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001C9783D4180(4,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001C9783D4180(4,13): error X3000: unrecognized identifier 'b'
-
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.fxc.hlsl
index 37c2fbf..b87f976 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.fxc.hlsl
@@ -7,8 +7,3 @@
   const vector<float16_t, 3> r = (a / b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001D90BA93590(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001D90BA93590(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001D90BA93590(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.fxc.hlsl
index b7fbe46..1d7f2c2 100644
--- a/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.fxc.hlsl
@@ -1,10 +1,13 @@
 SKIP: FAILED
 
+float16_t tint_float_mod(float16_t lhs, float16_t rhs) {
+  return (lhs - (trunc((lhs / rhs)) * rhs));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  const float16_t r = (float16_t(1.0h) % float16_t(2.0h));
+  const float16_t a = float16_t(1.0h);
+  const float16_t b = float16_t(2.0h);
+  const float16_t r = tint_float_mod(a, b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000023722D34110(3,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.fxc.hlsl
index 9c4f7b0..216663a 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.fxc.hlsl
@@ -1,12 +1,14 @@
 SKIP: FAILED
 
+vector<float16_t, 3> tint_float_mod(float16_t lhs, vector<float16_t, 3> rhs) {
+  const vector<float16_t, 3> l = vector<float16_t, 3>((lhs).xxx);
+  return (l - (trunc((l / rhs)) * rhs));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   const float16_t a = float16_t(4.0h);
   const vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
-  const vector<float16_t, 3> r = (a % b);
+  const vector<float16_t, 3> r = tint_float_mod(a, b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002545B962860(3,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.fxc.hlsl
index 9c6bb49..788ed10 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.fxc.hlsl
@@ -1,12 +1,14 @@
 SKIP: FAILED
 
+vector<float16_t, 3> tint_float_mod(vector<float16_t, 3> lhs, float16_t rhs) {
+  const vector<float16_t, 3> r = vector<float16_t, 3>((rhs).xxx);
+  return (lhs - (trunc((lhs / r)) * r));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   const vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
-  const vector<float16_t, 3> r = (a % float16_t(4.0h));
+  const float16_t b = float16_t(4.0h);
+  const vector<float16_t, 3> r = tint_float_mod(a, b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000018D97903680(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000018D97903680(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.fxc.hlsl
index af5b04d..43dbce5 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.fxc.hlsl
@@ -1,14 +1,13 @@
 SKIP: FAILED
 
+vector<float16_t, 3> tint_float_mod(vector<float16_t, 3> lhs, vector<float16_t, 3> rhs) {
+  return (lhs - (trunc((lhs / rhs)) * rhs));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   const vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
   const vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h));
-  const vector<float16_t, 3> r = (a % b);
+  const vector<float16_t, 3> r = tint_float_mod(a, b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001C9BEF22740(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001C9BEF22740(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001C9BEF22740(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.fxc.hlsl
index 13b7899..c85f822 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.fxc.hlsl
@@ -1,10 +1,13 @@
 SKIP: FAILED
 
+float16_t tint_float_mod(float16_t lhs, float16_t rhs) {
+  return (lhs - (trunc((lhs / rhs)) * rhs));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  const float16_t r = (float16_t(1.0h) % float16_t(0.0h));
+  const float16_t a = float16_t(1.0h);
+  const float16_t b = float16_t(0.0h);
+  const float16_t r = tint_float_mod(a, b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002639CD34EB0(3,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.fxc.hlsl
index 7ff795b..e213942 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.fxc.hlsl
@@ -1,14 +1,13 @@
 SKIP: FAILED
 
+vector<float16_t, 3> tint_float_mod(vector<float16_t, 3> lhs, vector<float16_t, 3> rhs) {
+  return (lhs - (trunc((lhs / rhs)) * rhs));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   const vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
   const vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(0.0h), float16_t(5.0h), float16_t(0.0h));
-  const vector<float16_t, 3> r = (a % b);
+  const vector<float16_t, 3> r = tint_float_mod(a, b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000014E5DAA6DB0(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000014E5DAA6DB0(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000014E5DAA6DB0(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.fxc.hlsl
index d529595..1002ebf 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.fxc.hlsl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
+float16_t tint_float_mod(float16_t lhs, float16_t rhs) {
+  return (lhs - (trunc((lhs / rhs)) * rhs));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
   float16_t b = float16_t(0.0h);
-  const float16_t r = (a % (b + b));
+  const float16_t r = tint_float_mod(a, (b + b));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000290AE802EA0(3,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000290AE802EA0(3,13): error X3000: unrecognized identifier 'a'
-
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.fxc.hlsl
index f78abea..678c366 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.fxc.hlsl
@@ -1,14 +1,13 @@
 SKIP: FAILED
 
+vector<float16_t, 3> tint_float_mod(vector<float16_t, 3> lhs, vector<float16_t, 3> rhs) {
+  return (lhs - (trunc((lhs / rhs)) * rhs));
+}
+
 [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));
-  const vector<float16_t, 3> r = (a % (b + b));
+  const vector<float16_t, 3> r = tint_float_mod(a, (b + b));
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001C6CF8C3C20(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001C6CF8C3C20(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001C6CF8C3C20(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.fxc.hlsl
index 70806b9..90a9f7c 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.fxc.hlsl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
+float16_t tint_float_mod(float16_t lhs, float16_t rhs) {
+  return (lhs - (trunc((lhs / rhs)) * rhs));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
   float16_t b = float16_t(0.0h);
-  const float16_t r = (a % b);
+  const float16_t r = tint_float_mod(a, b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000019B7B10C910(3,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000019B7B10C910(3,13): error X3000: unrecognized identifier 'a'
-
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.fxc.hlsl
index cbf68cc..fe70abc 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.fxc.hlsl
@@ -1,14 +1,13 @@
 SKIP: FAILED
 
+vector<float16_t, 3> tint_float_mod(vector<float16_t, 3> lhs, vector<float16_t, 3> rhs) {
+  return (lhs - (trunc((lhs / rhs)) * rhs));
+}
+
 [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));
-  const vector<float16_t, 3> r = (a % b);
+  const vector<float16_t, 3> r = tint_float_mod(a, b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000024A088362F0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000024A088362F0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000024A088362F0(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.fxc.hlsl
index b0dcb1e..1e85862 100644
--- a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.fxc.hlsl
@@ -7,8 +7,3 @@
   const matrix<float16_t, 4, 4> r = mul(b, a);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000029C36D606A0(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000029C36D606A0(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000029C36D606A0(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.fxc.hlsl
index ae79b76..003592d 100644
--- a/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.fxc.hlsl
@@ -1,20 +1,23 @@
 SKIP: FAILED
 
-binary/mul/mat3x2-vec3/f16.wgsl:3:14 error: using f16 types in 'uniform' address space is not implemented yet
-    matrix : mat3x2<f16>,
-             ^^^^^^^^^^^
+cbuffer cbuffer_data : register(b0, space0) {
+  uint4 data[2];
+};
 
-binary/mul/mat3x2-vec3/f16.wgsl:2:1 note: see layout of struct:
-/*            align(8) size(24) */ struct S {
-/* offset( 0) align(4) size(12) */   matrix : mat3x2<f16>;
-/* offset(12) align(1) size( 4) */   // -- implicit field alignment padding --;
-/* offset(16) align(8) size( 6) */   vector : vec3<f16>;
-/* offset(22) align(1) size( 2) */   // -- implicit struct size padding --;
-/*                              */ };
-struct S {
-^^^^^^
+matrix<float16_t, 3, 2> data_load(uint offset) {
+  const uint scalar_offset = ((offset + 0u)) / 4;
+  uint ubo_load = data[scalar_offset / 4][scalar_offset % 4];
+  const uint scalar_offset_1 = ((offset + 4u)) / 4;
+  uint ubo_load_1 = data[scalar_offset_1 / 4][scalar_offset_1 % 4];
+  const uint scalar_offset_2 = ((offset + 8u)) / 4;
+  uint ubo_load_2 = data[scalar_offset_2 / 4][scalar_offset_2 % 4];
+  return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(f16tof32(ubo_load & 0xFFFF)), float16_t(f16tof32(ubo_load >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_1 & 0xFFFF)), float16_t(f16tof32(ubo_load_1 >> 16))), vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16))));
+}
 
-binary/mul/mat3x2-vec3/f16.wgsl:6:36 note: see declaration of variable
-@group(0) @binding(0) var<uniform> data: S;
-                                   ^^^^
-
+void main() {
+  uint2 ubo_load_3 = data[1].xy;
+  vector<float16_t, 2> ubo_load_3_xz = vector<float16_t, 2>(f16tof32(ubo_load_3 & 0xFFFF));
+  float16_t ubo_load_3_y = f16tof32(ubo_load_3[0] >> 16);
+  const vector<float16_t, 2> x = mul(vector<float16_t, 3>(ubo_load_3_xz[0], ubo_load_3_y, ubo_load_3_xz[1]), data_load(0u));
+  return;
+}
diff --git a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.fxc.hlsl
index b1115b9..32d1ba3 100644
--- a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.fxc.hlsl
@@ -7,8 +7,3 @@
   const matrix<float16_t, 3, 3> r = mul(b, a);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001A5CF164C00(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001A5CF164C00(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001A5CF164C00(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.fxc.hlsl
index 57a21b5..dc6c4f1 100644
--- a/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.fxc.hlsl
@@ -1,19 +1,32 @@
 SKIP: FAILED
 
-binary/mul/mat3x3-vec3/f16.wgsl:3:14 error: using f16 types in 'uniform' address space is not implemented yet
-    matrix : mat3x3<f16>,
-             ^^^^^^^^^^^
+cbuffer cbuffer_data : register(b0, space0) {
+  uint4 data[2];
+};
 
-binary/mul/mat3x3-vec3/f16.wgsl:2:1 note: see layout of struct:
-/*            align(8) size(32) */ struct S {
-/* offset( 0) align(8) size(24) */   matrix : mat3x3<f16>;
-/* offset(24) align(8) size( 6) */   vector : vec3<f16>;
-/* offset(30) align(1) size( 2) */   // -- implicit struct size padding --;
-/*                              */ };
-struct S {
-^^^^^^
+matrix<float16_t, 3, 3> data_load(uint offset) {
+  const uint scalar_offset = ((offset + 0u)) / 4;
+  uint4 ubo_load_1 = data[scalar_offset / 4];
+  uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
+  vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
+  float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
+  const uint scalar_offset_1 = ((offset + 8u)) / 4;
+  uint4 ubo_load_3 = data[scalar_offset_1 / 4];
+  uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
+  vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
+  float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
+  const uint scalar_offset_2 = ((offset + 16u)) / 4;
+  uint4 ubo_load_5 = data[scalar_offset_2 / 4];
+  uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
+  vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
+  float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
+  return matrix<float16_t, 3, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]));
+}
 
-binary/mul/mat3x3-vec3/f16.wgsl:6:36 note: see declaration of variable
-@group(0) @binding(0) var<uniform> data: S;
-                                   ^^^^
-
+void main() {
+  uint2 ubo_load_6 = data[1].zw;
+  vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
+  float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
+  const vector<float16_t, 3> x = mul(vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]), data_load(0u));
+  return;
+}
diff --git a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.fxc.hlsl
index bcfe84a..323c2e3 100644
--- a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.fxc.hlsl
@@ -7,8 +7,3 @@
   const matrix<float16_t, 2, 2> r = mul(b, a);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001CE35477700(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001CE35477700(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001CE35477700(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.fxc.hlsl
index d9b0ec1..ab740eb 100644
--- a/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.fxc.hlsl
@@ -2,9 +2,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float16_t r = (float16_t(1.0h) * float16_t(2.0h));
+  const float16_t a = float16_t(1.0h);
+  const float16_t b = float16_t(2.0h);
+  const float16_t r = (a * b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000252E8C86030(3,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.fxc.hlsl
index 3b8d090..0986655 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.fxc.hlsl
@@ -7,6 +7,3 @@
   const vector<float16_t, 3> r = (a * b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000178A2942A20(3,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.fxc.hlsl
index df85ef6..9bb8349 100644
--- a/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.fxc.hlsl
@@ -1,19 +1,32 @@
 SKIP: FAILED
 
-binary/mul/vec3-mat3x3/f16.wgsl:3:14 error: using f16 types in 'uniform' address space is not implemented yet
-    matrix : mat3x3<f16>,
-             ^^^^^^^^^^^
+cbuffer cbuffer_data : register(b0, space0) {
+  uint4 data[2];
+};
 
-binary/mul/vec3-mat3x3/f16.wgsl:2:1 note: see layout of struct:
-/*            align(8) size(32) */ struct S {
-/* offset( 0) align(8) size(24) */   matrix : mat3x3<f16>;
-/* offset(24) align(8) size( 6) */   vector : vec3<f16>;
-/* offset(30) align(1) size( 2) */   // -- implicit struct size padding --;
-/*                              */ };
-struct S {
-^^^^^^
+matrix<float16_t, 3, 3> data_load_1(uint offset) {
+  const uint scalar_offset = ((offset + 0u)) / 4;
+  uint4 ubo_load_1 = data[scalar_offset / 4];
+  uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
+  vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
+  float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
+  const uint scalar_offset_1 = ((offset + 8u)) / 4;
+  uint4 ubo_load_3 = data[scalar_offset_1 / 4];
+  uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
+  vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
+  float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
+  const uint scalar_offset_2 = ((offset + 16u)) / 4;
+  uint4 ubo_load_5 = data[scalar_offset_2 / 4];
+  uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
+  vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
+  float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
+  return matrix<float16_t, 3, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]));
+}
 
-binary/mul/vec3-mat3x3/f16.wgsl:6:36 note: see declaration of variable
-@group(0) @binding(0) var<uniform> data: S;
-                                   ^^^^
-
+void main() {
+  uint2 ubo_load_6 = data[1].zw;
+  vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
+  float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
+  const vector<float16_t, 3> x = mul(data_load_1(0u), vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]));
+  return;
+}
diff --git a/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.fxc.hlsl
index 6f70109..872fa73 100644
--- a/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.fxc.hlsl
@@ -1,19 +1,37 @@
 SKIP: FAILED
 
-binary/mul/vec3-mat4x3/f16.wgsl:3:14 error: using f16 types in 'uniform' address space is not implemented yet
-    matrix : mat4x3<f16>,
-             ^^^^^^^^^^^
+cbuffer cbuffer_data : register(b0, space0) {
+  uint4 data[3];
+};
 
-binary/mul/vec3-mat4x3/f16.wgsl:2:1 note: see layout of struct:
-/*            align(8) size(40) */ struct S {
-/* offset( 0) align(8) size(32) */   matrix : mat4x3<f16>;
-/* offset(32) align(8) size( 6) */   vector : vec3<f16>;
-/* offset(38) align(1) size( 2) */   // -- implicit struct size padding --;
-/*                              */ };
-struct S {
-^^^^^^
+matrix<float16_t, 4, 3> data_load_1(uint offset) {
+  const uint scalar_offset = ((offset + 0u)) / 4;
+  uint4 ubo_load_1 = data[scalar_offset / 4];
+  uint2 ubo_load = ((scalar_offset & 2) ? ubo_load_1.zw : ubo_load_1.xy);
+  vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
+  float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
+  const uint scalar_offset_1 = ((offset + 8u)) / 4;
+  uint4 ubo_load_3 = data[scalar_offset_1 / 4];
+  uint2 ubo_load_2 = ((scalar_offset_1 & 2) ? ubo_load_3.zw : ubo_load_3.xy);
+  vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
+  float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
+  const uint scalar_offset_2 = ((offset + 16u)) / 4;
+  uint4 ubo_load_5 = data[scalar_offset_2 / 4];
+  uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
+  vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
+  float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
+  const uint scalar_offset_3 = ((offset + 24u)) / 4;
+  uint4 ubo_load_7 = data[scalar_offset_3 / 4];
+  uint2 ubo_load_6 = ((scalar_offset_3 & 2) ? ubo_load_7.zw : ubo_load_7.xy);
+  vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
+  float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
+  return matrix<float16_t, 4, 3>(vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]), vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]));
+}
 
-binary/mul/vec3-mat4x3/f16.wgsl:6:36 note: see declaration of variable
-@group(0) @binding(0) var<uniform> data: S;
-                                   ^^^^
-
+void main() {
+  uint2 ubo_load_8 = data[2].xy;
+  vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
+  float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
+  const vector<float16_t, 4> x = mul(data_load_1(0u), vector<float16_t, 3>(ubo_load_8_xz[0], ubo_load_8_y, ubo_load_8_xz[1]));
+  return;
+}
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.fxc.hlsl
index c633188..dbd5341 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.fxc.hlsl
@@ -3,10 +3,7 @@
 [numthreads(1, 1, 1)]
 void f() {
   const vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
-  const vector<float16_t, 3> r = (a * float16_t(4.0h));
+  const float16_t b = float16_t(4.0h);
+  const vector<float16_t, 3> r = (a * b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000298EEEF3700(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000298EEEF3700(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.fxc.hlsl
index 51fe0b8..358ea75 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.fxc.hlsl
@@ -7,8 +7,3 @@
   const vector<float16_t, 3> r = (a * b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001B65F083630(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001B65F083630(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001B65F083630(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.fxc.hlsl
index 4ee09fb..5405489 100644
--- a/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.fxc.hlsl
@@ -7,8 +7,3 @@
   const matrix<float16_t, 3, 3> r = (a - b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000014C51995C90(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000014C51995C90(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000014C51995C90(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.fxc.hlsl
index 368197c..2184244 100644
--- a/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.fxc.hlsl
@@ -2,9 +2,8 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float16_t r = (float16_t(1.0h) - float16_t(2.0h));
+  const float16_t a = float16_t(1.0h);
+  const float16_t b = float16_t(2.0h);
+  const float16_t r = (a - b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000028D0FDE52F0(3,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.fxc.hlsl
index 67a6a84..78f059f 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.fxc.hlsl
@@ -7,6 +7,3 @@
   const vector<float16_t, 3> r = (a - b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001FE69582A90(3,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.fxc.hlsl
index 083ec01..5d35988 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.fxc.hlsl
@@ -3,10 +3,7 @@
 [numthreads(1, 1, 1)]
 void f() {
   const vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
-  const vector<float16_t, 3> r = (a - float16_t(4.0h));
+  const float16_t b = float16_t(4.0h);
+  const vector<float16_t, 3> r = (a - b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001E70BC13730(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001E70BC13730(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.fxc.hlsl
index 6432f85..34cc807 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.fxc.hlsl
@@ -7,8 +7,3 @@
   const vector<float16_t, 3> r = (a - b);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000027B612936C0(3,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000027B612936C0(4,16-24): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000027B612936C0(5,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/splat/call/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/splat/call/f16.wgsl.expected.fxc.hlsl
index 4f8c520..03e4a6d 100644
--- a/test/tint/expressions/splat/call/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/splat/call/f16.wgsl.expected.fxc.hlsl
@@ -17,6 +17,3 @@
   const float16_t tint_symbol_2 = get_f16();
   vector<float16_t, 4> v4 = vector<float16_t, 4>((tint_symbol_2).xxxx);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001EAED2412C0(6,1-9): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/splat/expression/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/splat/expression/f16.wgsl.expected.fxc.hlsl
index 0527080..d2b49ea 100644
--- a/test/tint/expressions/splat/expression/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/splat/expression/f16.wgsl.expected.fxc.hlsl
@@ -6,12 +6,7 @@
 }
 
 void f() {
-  vector<float16_t, 2> v2 = vector<float16_t, 2>(((float16_t(1.0h) + float16_t(2.0h))).xx);
-  vector<float16_t, 3> v3 = vector<float16_t, 3>(((float16_t(1.0h) + float16_t(2.0h))).xxx);
-  vector<float16_t, 4> v4 = vector<float16_t, 4>(((float16_t(1.0h) + float16_t(2.0h))).xxxx);
+  vector<float16_t, 2> v2 = (float16_t(3.0h)).xx;
+  vector<float16_t, 3> v3 = (float16_t(3.0h)).xxx;
+  vector<float16_t, 4> v4 = (float16_t(3.0h)).xxxx;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002661C202C10(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002661C202C10(8,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002661C202C10(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/splat/immediate/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/splat/immediate/f16.wgsl.expected.fxc.hlsl
index b8d6512..8daf8c4 100644
--- a/test/tint/expressions/splat/immediate/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/splat/immediate/f16.wgsl.expected.fxc.hlsl
@@ -10,8 +10,3 @@
   vector<float16_t, 3> v3 = (float16_t(1.0h)).xxx;
   vector<float16_t, 4> v4 = (float16_t(1.0h)).xxxx;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000023F6A192800(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000023F6A192800(8,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000023F6A192800(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/splat/var/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/splat/var/f16.wgsl.expected.fxc.hlsl
index 334ebc0..5f897a2 100644
--- a/test/tint/expressions/splat/var/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/splat/var/f16.wgsl.expected.fxc.hlsl
@@ -6,12 +6,8 @@
 }
 
 void f() {
-  float16_t v = (float16_t(1.0h) + float16_t(2.0h));
+  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);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001FDC0B44610(7,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001FDC0B44610(7,13): error X3000: unrecognized identifier 'v'
-
diff --git a/test/tint/expressions/splat/with_swizzle/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/splat/with_swizzle/f16.wgsl.expected.fxc.hlsl
index 992a8ed..ffeafd0 100644
--- a/test/tint/expressions/splat/with_swizzle/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/splat/with_swizzle/f16.wgsl.expected.fxc.hlsl
@@ -10,7 +10,3 @@
   float16_t b = float16_t(1.0h);
   float16_t c = float16_t(1.0h);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000025AD8484E80(7,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000025AD8484E80(7,13): error X3000: unrecognized identifier 'a'
-
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.fxc.hlsl
index 6c8063b2..a64ff4d 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.fxc.hlsl
@@ -1,18 +1,488 @@
 SKIP: FAILED
 
-swizzle/read/packed_vec3/f16.wgsl:3:8 error: using f16 types in 'uniform' address space is not implemented yet
-    v: vec3<f16>,
-       ^^^^^^^^^
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+  return;
+}
 
-swizzle/read/packed_vec3/f16.wgsl:2:1 note: see layout of struct:
-/*           align(8) size(8) */ struct S {
-/* offset(0) align(8) size(6) */   v : vec3<f16>;
-/* offset(6) align(1) size(2) */   // -- implicit struct size padding --;
-/*                            */ };
-struct S {
-^^^^^^
+cbuffer cbuffer_U : register(b0, space0) {
+  uint4 U[1];
+};
 
-swizzle/read/packed_vec3/f16.wgsl:6:36 note: see declaration of variable
-@group(0) @binding(0) var<uniform> U : S;
-                                   ^
-
+void f() {
+  uint2 ubo_load = U[0].xy;
+  vector<float16_t, 2> ubo_load_xz = vector<float16_t, 2>(f16tof32(ubo_load & 0xFFFF));
+  float16_t ubo_load_y = f16tof32(ubo_load[0] >> 16);
+  vector<float16_t, 3> v = vector<float16_t, 3>(ubo_load_xz[0], ubo_load_y, ubo_load_xz[1]);
+  float16_t x = float16_t(f16tof32(((U[0].x) & 0xFFFF)));
+  float16_t y = float16_t(f16tof32(((U[0].x >> 16) & 0xFFFF)));
+  float16_t z = float16_t(f16tof32(((U[0].y) & 0xFFFF)));
+  uint2 ubo_load_1 = U[0].xy;
+  vector<float16_t, 2> ubo_load_1_xz = vector<float16_t, 2>(f16tof32(ubo_load_1 & 0xFFFF));
+  float16_t ubo_load_1_y = f16tof32(ubo_load_1[0] >> 16);
+  vector<float16_t, 2> xx = vector<float16_t, 3>(ubo_load_1_xz[0], ubo_load_1_y, ubo_load_1_xz[1]).xx;
+  uint2 ubo_load_2 = U[0].xy;
+  vector<float16_t, 2> ubo_load_2_xz = vector<float16_t, 2>(f16tof32(ubo_load_2 & 0xFFFF));
+  float16_t ubo_load_2_y = f16tof32(ubo_load_2[0] >> 16);
+  vector<float16_t, 2> xy = vector<float16_t, 3>(ubo_load_2_xz[0], ubo_load_2_y, ubo_load_2_xz[1]).xy;
+  uint2 ubo_load_3 = U[0].xy;
+  vector<float16_t, 2> ubo_load_3_xz = vector<float16_t, 2>(f16tof32(ubo_load_3 & 0xFFFF));
+  float16_t ubo_load_3_y = f16tof32(ubo_load_3[0] >> 16);
+  vector<float16_t, 2> xz = vector<float16_t, 3>(ubo_load_3_xz[0], ubo_load_3_y, ubo_load_3_xz[1]).xz;
+  uint2 ubo_load_4 = U[0].xy;
+  vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
+  float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
+  vector<float16_t, 2> yx = vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]).yx;
+  uint2 ubo_load_5 = U[0].xy;
+  vector<float16_t, 2> ubo_load_5_xz = vector<float16_t, 2>(f16tof32(ubo_load_5 & 0xFFFF));
+  float16_t ubo_load_5_y = f16tof32(ubo_load_5[0] >> 16);
+  vector<float16_t, 2> yy = vector<float16_t, 3>(ubo_load_5_xz[0], ubo_load_5_y, ubo_load_5_xz[1]).yy;
+  uint2 ubo_load_6 = U[0].xy;
+  vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
+  float16_t ubo_load_6_y = f16tof32(ubo_load_6[0] >> 16);
+  vector<float16_t, 2> yz = vector<float16_t, 3>(ubo_load_6_xz[0], ubo_load_6_y, ubo_load_6_xz[1]).yz;
+  uint2 ubo_load_7 = U[0].xy;
+  vector<float16_t, 2> ubo_load_7_xz = vector<float16_t, 2>(f16tof32(ubo_load_7 & 0xFFFF));
+  float16_t ubo_load_7_y = f16tof32(ubo_load_7[0] >> 16);
+  vector<float16_t, 2> zx = vector<float16_t, 3>(ubo_load_7_xz[0], ubo_load_7_y, ubo_load_7_xz[1]).zx;
+  uint2 ubo_load_8 = U[0].xy;
+  vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
+  float16_t ubo_load_8_y = f16tof32(ubo_load_8[0] >> 16);
+  vector<float16_t, 2> zy = vector<float16_t, 3>(ubo_load_8_xz[0], ubo_load_8_y, ubo_load_8_xz[1]).zy;
+  uint2 ubo_load_9 = U[0].xy;
+  vector<float16_t, 2> ubo_load_9_xz = vector<float16_t, 2>(f16tof32(ubo_load_9 & 0xFFFF));
+  float16_t ubo_load_9_y = f16tof32(ubo_load_9[0] >> 16);
+  vector<float16_t, 2> zz = vector<float16_t, 3>(ubo_load_9_xz[0], ubo_load_9_y, ubo_load_9_xz[1]).zz;
+  uint2 ubo_load_10 = U[0].xy;
+  vector<float16_t, 2> ubo_load_10_xz = vector<float16_t, 2>(f16tof32(ubo_load_10 & 0xFFFF));
+  float16_t ubo_load_10_y = f16tof32(ubo_load_10[0] >> 16);
+  vector<float16_t, 3> xxx = vector<float16_t, 3>(ubo_load_10_xz[0], ubo_load_10_y, ubo_load_10_xz[1]).xxx;
+  uint2 ubo_load_11 = U[0].xy;
+  vector<float16_t, 2> ubo_load_11_xz = vector<float16_t, 2>(f16tof32(ubo_load_11 & 0xFFFF));
+  float16_t ubo_load_11_y = f16tof32(ubo_load_11[0] >> 16);
+  vector<float16_t, 3> xxy = vector<float16_t, 3>(ubo_load_11_xz[0], ubo_load_11_y, ubo_load_11_xz[1]).xxy;
+  uint2 ubo_load_12 = U[0].xy;
+  vector<float16_t, 2> ubo_load_12_xz = vector<float16_t, 2>(f16tof32(ubo_load_12 & 0xFFFF));
+  float16_t ubo_load_12_y = f16tof32(ubo_load_12[0] >> 16);
+  vector<float16_t, 3> xxz = vector<float16_t, 3>(ubo_load_12_xz[0], ubo_load_12_y, ubo_load_12_xz[1]).xxz;
+  uint2 ubo_load_13 = U[0].xy;
+  vector<float16_t, 2> ubo_load_13_xz = vector<float16_t, 2>(f16tof32(ubo_load_13 & 0xFFFF));
+  float16_t ubo_load_13_y = f16tof32(ubo_load_13[0] >> 16);
+  vector<float16_t, 3> xyx = vector<float16_t, 3>(ubo_load_13_xz[0], ubo_load_13_y, ubo_load_13_xz[1]).xyx;
+  uint2 ubo_load_14 = U[0].xy;
+  vector<float16_t, 2> ubo_load_14_xz = vector<float16_t, 2>(f16tof32(ubo_load_14 & 0xFFFF));
+  float16_t ubo_load_14_y = f16tof32(ubo_load_14[0] >> 16);
+  vector<float16_t, 3> xyy = vector<float16_t, 3>(ubo_load_14_xz[0], ubo_load_14_y, ubo_load_14_xz[1]).xyy;
+  uint2 ubo_load_15 = U[0].xy;
+  vector<float16_t, 2> ubo_load_15_xz = vector<float16_t, 2>(f16tof32(ubo_load_15 & 0xFFFF));
+  float16_t ubo_load_15_y = f16tof32(ubo_load_15[0] >> 16);
+  vector<float16_t, 3> xyz = vector<float16_t, 3>(ubo_load_15_xz[0], ubo_load_15_y, ubo_load_15_xz[1]).xyz;
+  uint2 ubo_load_16 = U[0].xy;
+  vector<float16_t, 2> ubo_load_16_xz = vector<float16_t, 2>(f16tof32(ubo_load_16 & 0xFFFF));
+  float16_t ubo_load_16_y = f16tof32(ubo_load_16[0] >> 16);
+  vector<float16_t, 3> xzx = vector<float16_t, 3>(ubo_load_16_xz[0], ubo_load_16_y, ubo_load_16_xz[1]).xzx;
+  uint2 ubo_load_17 = U[0].xy;
+  vector<float16_t, 2> ubo_load_17_xz = vector<float16_t, 2>(f16tof32(ubo_load_17 & 0xFFFF));
+  float16_t ubo_load_17_y = f16tof32(ubo_load_17[0] >> 16);
+  vector<float16_t, 3> xzy = vector<float16_t, 3>(ubo_load_17_xz[0], ubo_load_17_y, ubo_load_17_xz[1]).xzy;
+  uint2 ubo_load_18 = U[0].xy;
+  vector<float16_t, 2> ubo_load_18_xz = vector<float16_t, 2>(f16tof32(ubo_load_18 & 0xFFFF));
+  float16_t ubo_load_18_y = f16tof32(ubo_load_18[0] >> 16);
+  vector<float16_t, 3> xzz = vector<float16_t, 3>(ubo_load_18_xz[0], ubo_load_18_y, ubo_load_18_xz[1]).xzz;
+  uint2 ubo_load_19 = U[0].xy;
+  vector<float16_t, 2> ubo_load_19_xz = vector<float16_t, 2>(f16tof32(ubo_load_19 & 0xFFFF));
+  float16_t ubo_load_19_y = f16tof32(ubo_load_19[0] >> 16);
+  vector<float16_t, 3> yxx = vector<float16_t, 3>(ubo_load_19_xz[0], ubo_load_19_y, ubo_load_19_xz[1]).yxx;
+  uint2 ubo_load_20 = U[0].xy;
+  vector<float16_t, 2> ubo_load_20_xz = vector<float16_t, 2>(f16tof32(ubo_load_20 & 0xFFFF));
+  float16_t ubo_load_20_y = f16tof32(ubo_load_20[0] >> 16);
+  vector<float16_t, 3> yxy = vector<float16_t, 3>(ubo_load_20_xz[0], ubo_load_20_y, ubo_load_20_xz[1]).yxy;
+  uint2 ubo_load_21 = U[0].xy;
+  vector<float16_t, 2> ubo_load_21_xz = vector<float16_t, 2>(f16tof32(ubo_load_21 & 0xFFFF));
+  float16_t ubo_load_21_y = f16tof32(ubo_load_21[0] >> 16);
+  vector<float16_t, 3> yxz = vector<float16_t, 3>(ubo_load_21_xz[0], ubo_load_21_y, ubo_load_21_xz[1]).yxz;
+  uint2 ubo_load_22 = U[0].xy;
+  vector<float16_t, 2> ubo_load_22_xz = vector<float16_t, 2>(f16tof32(ubo_load_22 & 0xFFFF));
+  float16_t ubo_load_22_y = f16tof32(ubo_load_22[0] >> 16);
+  vector<float16_t, 3> yyx = vector<float16_t, 3>(ubo_load_22_xz[0], ubo_load_22_y, ubo_load_22_xz[1]).yyx;
+  uint2 ubo_load_23 = U[0].xy;
+  vector<float16_t, 2> ubo_load_23_xz = vector<float16_t, 2>(f16tof32(ubo_load_23 & 0xFFFF));
+  float16_t ubo_load_23_y = f16tof32(ubo_load_23[0] >> 16);
+  vector<float16_t, 3> yyy = vector<float16_t, 3>(ubo_load_23_xz[0], ubo_load_23_y, ubo_load_23_xz[1]).yyy;
+  uint2 ubo_load_24 = U[0].xy;
+  vector<float16_t, 2> ubo_load_24_xz = vector<float16_t, 2>(f16tof32(ubo_load_24 & 0xFFFF));
+  float16_t ubo_load_24_y = f16tof32(ubo_load_24[0] >> 16);
+  vector<float16_t, 3> yyz = vector<float16_t, 3>(ubo_load_24_xz[0], ubo_load_24_y, ubo_load_24_xz[1]).yyz;
+  uint2 ubo_load_25 = U[0].xy;
+  vector<float16_t, 2> ubo_load_25_xz = vector<float16_t, 2>(f16tof32(ubo_load_25 & 0xFFFF));
+  float16_t ubo_load_25_y = f16tof32(ubo_load_25[0] >> 16);
+  vector<float16_t, 3> yzx = vector<float16_t, 3>(ubo_load_25_xz[0], ubo_load_25_y, ubo_load_25_xz[1]).yzx;
+  uint2 ubo_load_26 = U[0].xy;
+  vector<float16_t, 2> ubo_load_26_xz = vector<float16_t, 2>(f16tof32(ubo_load_26 & 0xFFFF));
+  float16_t ubo_load_26_y = f16tof32(ubo_load_26[0] >> 16);
+  vector<float16_t, 3> yzy = vector<float16_t, 3>(ubo_load_26_xz[0], ubo_load_26_y, ubo_load_26_xz[1]).yzy;
+  uint2 ubo_load_27 = U[0].xy;
+  vector<float16_t, 2> ubo_load_27_xz = vector<float16_t, 2>(f16tof32(ubo_load_27 & 0xFFFF));
+  float16_t ubo_load_27_y = f16tof32(ubo_load_27[0] >> 16);
+  vector<float16_t, 3> yzz = vector<float16_t, 3>(ubo_load_27_xz[0], ubo_load_27_y, ubo_load_27_xz[1]).yzz;
+  uint2 ubo_load_28 = U[0].xy;
+  vector<float16_t, 2> ubo_load_28_xz = vector<float16_t, 2>(f16tof32(ubo_load_28 & 0xFFFF));
+  float16_t ubo_load_28_y = f16tof32(ubo_load_28[0] >> 16);
+  vector<float16_t, 3> zxx = vector<float16_t, 3>(ubo_load_28_xz[0], ubo_load_28_y, ubo_load_28_xz[1]).zxx;
+  uint2 ubo_load_29 = U[0].xy;
+  vector<float16_t, 2> ubo_load_29_xz = vector<float16_t, 2>(f16tof32(ubo_load_29 & 0xFFFF));
+  float16_t ubo_load_29_y = f16tof32(ubo_load_29[0] >> 16);
+  vector<float16_t, 3> zxy = vector<float16_t, 3>(ubo_load_29_xz[0], ubo_load_29_y, ubo_load_29_xz[1]).zxy;
+  uint2 ubo_load_30 = U[0].xy;
+  vector<float16_t, 2> ubo_load_30_xz = vector<float16_t, 2>(f16tof32(ubo_load_30 & 0xFFFF));
+  float16_t ubo_load_30_y = f16tof32(ubo_load_30[0] >> 16);
+  vector<float16_t, 3> zxz = vector<float16_t, 3>(ubo_load_30_xz[0], ubo_load_30_y, ubo_load_30_xz[1]).zxz;
+  uint2 ubo_load_31 = U[0].xy;
+  vector<float16_t, 2> ubo_load_31_xz = vector<float16_t, 2>(f16tof32(ubo_load_31 & 0xFFFF));
+  float16_t ubo_load_31_y = f16tof32(ubo_load_31[0] >> 16);
+  vector<float16_t, 3> zyx = vector<float16_t, 3>(ubo_load_31_xz[0], ubo_load_31_y, ubo_load_31_xz[1]).zyx;
+  uint2 ubo_load_32 = U[0].xy;
+  vector<float16_t, 2> ubo_load_32_xz = vector<float16_t, 2>(f16tof32(ubo_load_32 & 0xFFFF));
+  float16_t ubo_load_32_y = f16tof32(ubo_load_32[0] >> 16);
+  vector<float16_t, 3> zyy = vector<float16_t, 3>(ubo_load_32_xz[0], ubo_load_32_y, ubo_load_32_xz[1]).zyy;
+  uint2 ubo_load_33 = U[0].xy;
+  vector<float16_t, 2> ubo_load_33_xz = vector<float16_t, 2>(f16tof32(ubo_load_33 & 0xFFFF));
+  float16_t ubo_load_33_y = f16tof32(ubo_load_33[0] >> 16);
+  vector<float16_t, 3> zyz = vector<float16_t, 3>(ubo_load_33_xz[0], ubo_load_33_y, ubo_load_33_xz[1]).zyz;
+  uint2 ubo_load_34 = U[0].xy;
+  vector<float16_t, 2> ubo_load_34_xz = vector<float16_t, 2>(f16tof32(ubo_load_34 & 0xFFFF));
+  float16_t ubo_load_34_y = f16tof32(ubo_load_34[0] >> 16);
+  vector<float16_t, 3> zzx = vector<float16_t, 3>(ubo_load_34_xz[0], ubo_load_34_y, ubo_load_34_xz[1]).zzx;
+  uint2 ubo_load_35 = U[0].xy;
+  vector<float16_t, 2> ubo_load_35_xz = vector<float16_t, 2>(f16tof32(ubo_load_35 & 0xFFFF));
+  float16_t ubo_load_35_y = f16tof32(ubo_load_35[0] >> 16);
+  vector<float16_t, 3> zzy = vector<float16_t, 3>(ubo_load_35_xz[0], ubo_load_35_y, ubo_load_35_xz[1]).zzy;
+  uint2 ubo_load_36 = U[0].xy;
+  vector<float16_t, 2> ubo_load_36_xz = vector<float16_t, 2>(f16tof32(ubo_load_36 & 0xFFFF));
+  float16_t ubo_load_36_y = f16tof32(ubo_load_36[0] >> 16);
+  vector<float16_t, 3> zzz = vector<float16_t, 3>(ubo_load_36_xz[0], ubo_load_36_y, ubo_load_36_xz[1]).zzz;
+  uint2 ubo_load_37 = U[0].xy;
+  vector<float16_t, 2> ubo_load_37_xz = vector<float16_t, 2>(f16tof32(ubo_load_37 & 0xFFFF));
+  float16_t ubo_load_37_y = f16tof32(ubo_load_37[0] >> 16);
+  vector<float16_t, 4> xxxx = vector<float16_t, 3>(ubo_load_37_xz[0], ubo_load_37_y, ubo_load_37_xz[1]).xxxx;
+  uint2 ubo_load_38 = U[0].xy;
+  vector<float16_t, 2> ubo_load_38_xz = vector<float16_t, 2>(f16tof32(ubo_load_38 & 0xFFFF));
+  float16_t ubo_load_38_y = f16tof32(ubo_load_38[0] >> 16);
+  vector<float16_t, 4> xxxy = vector<float16_t, 3>(ubo_load_38_xz[0], ubo_load_38_y, ubo_load_38_xz[1]).xxxy;
+  uint2 ubo_load_39 = U[0].xy;
+  vector<float16_t, 2> ubo_load_39_xz = vector<float16_t, 2>(f16tof32(ubo_load_39 & 0xFFFF));
+  float16_t ubo_load_39_y = f16tof32(ubo_load_39[0] >> 16);
+  vector<float16_t, 4> xxxz = vector<float16_t, 3>(ubo_load_39_xz[0], ubo_load_39_y, ubo_load_39_xz[1]).xxxz;
+  uint2 ubo_load_40 = U[0].xy;
+  vector<float16_t, 2> ubo_load_40_xz = vector<float16_t, 2>(f16tof32(ubo_load_40 & 0xFFFF));
+  float16_t ubo_load_40_y = f16tof32(ubo_load_40[0] >> 16);
+  vector<float16_t, 4> xxyx = vector<float16_t, 3>(ubo_load_40_xz[0], ubo_load_40_y, ubo_load_40_xz[1]).xxyx;
+  uint2 ubo_load_41 = U[0].xy;
+  vector<float16_t, 2> ubo_load_41_xz = vector<float16_t, 2>(f16tof32(ubo_load_41 & 0xFFFF));
+  float16_t ubo_load_41_y = f16tof32(ubo_load_41[0] >> 16);
+  vector<float16_t, 4> xxyy = vector<float16_t, 3>(ubo_load_41_xz[0], ubo_load_41_y, ubo_load_41_xz[1]).xxyy;
+  uint2 ubo_load_42 = U[0].xy;
+  vector<float16_t, 2> ubo_load_42_xz = vector<float16_t, 2>(f16tof32(ubo_load_42 & 0xFFFF));
+  float16_t ubo_load_42_y = f16tof32(ubo_load_42[0] >> 16);
+  vector<float16_t, 4> xxyz = vector<float16_t, 3>(ubo_load_42_xz[0], ubo_load_42_y, ubo_load_42_xz[1]).xxyz;
+  uint2 ubo_load_43 = U[0].xy;
+  vector<float16_t, 2> ubo_load_43_xz = vector<float16_t, 2>(f16tof32(ubo_load_43 & 0xFFFF));
+  float16_t ubo_load_43_y = f16tof32(ubo_load_43[0] >> 16);
+  vector<float16_t, 4> xxzx = vector<float16_t, 3>(ubo_load_43_xz[0], ubo_load_43_y, ubo_load_43_xz[1]).xxzx;
+  uint2 ubo_load_44 = U[0].xy;
+  vector<float16_t, 2> ubo_load_44_xz = vector<float16_t, 2>(f16tof32(ubo_load_44 & 0xFFFF));
+  float16_t ubo_load_44_y = f16tof32(ubo_load_44[0] >> 16);
+  vector<float16_t, 4> xxzy = vector<float16_t, 3>(ubo_load_44_xz[0], ubo_load_44_y, ubo_load_44_xz[1]).xxzy;
+  uint2 ubo_load_45 = U[0].xy;
+  vector<float16_t, 2> ubo_load_45_xz = vector<float16_t, 2>(f16tof32(ubo_load_45 & 0xFFFF));
+  float16_t ubo_load_45_y = f16tof32(ubo_load_45[0] >> 16);
+  vector<float16_t, 4> xxzz = vector<float16_t, 3>(ubo_load_45_xz[0], ubo_load_45_y, ubo_load_45_xz[1]).xxzz;
+  uint2 ubo_load_46 = U[0].xy;
+  vector<float16_t, 2> ubo_load_46_xz = vector<float16_t, 2>(f16tof32(ubo_load_46 & 0xFFFF));
+  float16_t ubo_load_46_y = f16tof32(ubo_load_46[0] >> 16);
+  vector<float16_t, 4> xyxx = vector<float16_t, 3>(ubo_load_46_xz[0], ubo_load_46_y, ubo_load_46_xz[1]).xyxx;
+  uint2 ubo_load_47 = U[0].xy;
+  vector<float16_t, 2> ubo_load_47_xz = vector<float16_t, 2>(f16tof32(ubo_load_47 & 0xFFFF));
+  float16_t ubo_load_47_y = f16tof32(ubo_load_47[0] >> 16);
+  vector<float16_t, 4> xyxy = vector<float16_t, 3>(ubo_load_47_xz[0], ubo_load_47_y, ubo_load_47_xz[1]).xyxy;
+  uint2 ubo_load_48 = U[0].xy;
+  vector<float16_t, 2> ubo_load_48_xz = vector<float16_t, 2>(f16tof32(ubo_load_48 & 0xFFFF));
+  float16_t ubo_load_48_y = f16tof32(ubo_load_48[0] >> 16);
+  vector<float16_t, 4> xyxz = vector<float16_t, 3>(ubo_load_48_xz[0], ubo_load_48_y, ubo_load_48_xz[1]).xyxz;
+  uint2 ubo_load_49 = U[0].xy;
+  vector<float16_t, 2> ubo_load_49_xz = vector<float16_t, 2>(f16tof32(ubo_load_49 & 0xFFFF));
+  float16_t ubo_load_49_y = f16tof32(ubo_load_49[0] >> 16);
+  vector<float16_t, 4> xyyx = vector<float16_t, 3>(ubo_load_49_xz[0], ubo_load_49_y, ubo_load_49_xz[1]).xyyx;
+  uint2 ubo_load_50 = U[0].xy;
+  vector<float16_t, 2> ubo_load_50_xz = vector<float16_t, 2>(f16tof32(ubo_load_50 & 0xFFFF));
+  float16_t ubo_load_50_y = f16tof32(ubo_load_50[0] >> 16);
+  vector<float16_t, 4> xyyy = vector<float16_t, 3>(ubo_load_50_xz[0], ubo_load_50_y, ubo_load_50_xz[1]).xyyy;
+  uint2 ubo_load_51 = U[0].xy;
+  vector<float16_t, 2> ubo_load_51_xz = vector<float16_t, 2>(f16tof32(ubo_load_51 & 0xFFFF));
+  float16_t ubo_load_51_y = f16tof32(ubo_load_51[0] >> 16);
+  vector<float16_t, 4> xyyz = vector<float16_t, 3>(ubo_load_51_xz[0], ubo_load_51_y, ubo_load_51_xz[1]).xyyz;
+  uint2 ubo_load_52 = U[0].xy;
+  vector<float16_t, 2> ubo_load_52_xz = vector<float16_t, 2>(f16tof32(ubo_load_52 & 0xFFFF));
+  float16_t ubo_load_52_y = f16tof32(ubo_load_52[0] >> 16);
+  vector<float16_t, 4> xyzx = vector<float16_t, 3>(ubo_load_52_xz[0], ubo_load_52_y, ubo_load_52_xz[1]).xyzx;
+  uint2 ubo_load_53 = U[0].xy;
+  vector<float16_t, 2> ubo_load_53_xz = vector<float16_t, 2>(f16tof32(ubo_load_53 & 0xFFFF));
+  float16_t ubo_load_53_y = f16tof32(ubo_load_53[0] >> 16);
+  vector<float16_t, 4> xyzy = vector<float16_t, 3>(ubo_load_53_xz[0], ubo_load_53_y, ubo_load_53_xz[1]).xyzy;
+  uint2 ubo_load_54 = U[0].xy;
+  vector<float16_t, 2> ubo_load_54_xz = vector<float16_t, 2>(f16tof32(ubo_load_54 & 0xFFFF));
+  float16_t ubo_load_54_y = f16tof32(ubo_load_54[0] >> 16);
+  vector<float16_t, 4> xyzz = vector<float16_t, 3>(ubo_load_54_xz[0], ubo_load_54_y, ubo_load_54_xz[1]).xyzz;
+  uint2 ubo_load_55 = U[0].xy;
+  vector<float16_t, 2> ubo_load_55_xz = vector<float16_t, 2>(f16tof32(ubo_load_55 & 0xFFFF));
+  float16_t ubo_load_55_y = f16tof32(ubo_load_55[0] >> 16);
+  vector<float16_t, 4> xzxx = vector<float16_t, 3>(ubo_load_55_xz[0], ubo_load_55_y, ubo_load_55_xz[1]).xzxx;
+  uint2 ubo_load_56 = U[0].xy;
+  vector<float16_t, 2> ubo_load_56_xz = vector<float16_t, 2>(f16tof32(ubo_load_56 & 0xFFFF));
+  float16_t ubo_load_56_y = f16tof32(ubo_load_56[0] >> 16);
+  vector<float16_t, 4> xzxy = vector<float16_t, 3>(ubo_load_56_xz[0], ubo_load_56_y, ubo_load_56_xz[1]).xzxy;
+  uint2 ubo_load_57 = U[0].xy;
+  vector<float16_t, 2> ubo_load_57_xz = vector<float16_t, 2>(f16tof32(ubo_load_57 & 0xFFFF));
+  float16_t ubo_load_57_y = f16tof32(ubo_load_57[0] >> 16);
+  vector<float16_t, 4> xzxz = vector<float16_t, 3>(ubo_load_57_xz[0], ubo_load_57_y, ubo_load_57_xz[1]).xzxz;
+  uint2 ubo_load_58 = U[0].xy;
+  vector<float16_t, 2> ubo_load_58_xz = vector<float16_t, 2>(f16tof32(ubo_load_58 & 0xFFFF));
+  float16_t ubo_load_58_y = f16tof32(ubo_load_58[0] >> 16);
+  vector<float16_t, 4> xzyx = vector<float16_t, 3>(ubo_load_58_xz[0], ubo_load_58_y, ubo_load_58_xz[1]).xzyx;
+  uint2 ubo_load_59 = U[0].xy;
+  vector<float16_t, 2> ubo_load_59_xz = vector<float16_t, 2>(f16tof32(ubo_load_59 & 0xFFFF));
+  float16_t ubo_load_59_y = f16tof32(ubo_load_59[0] >> 16);
+  vector<float16_t, 4> xzyy = vector<float16_t, 3>(ubo_load_59_xz[0], ubo_load_59_y, ubo_load_59_xz[1]).xzyy;
+  uint2 ubo_load_60 = U[0].xy;
+  vector<float16_t, 2> ubo_load_60_xz = vector<float16_t, 2>(f16tof32(ubo_load_60 & 0xFFFF));
+  float16_t ubo_load_60_y = f16tof32(ubo_load_60[0] >> 16);
+  vector<float16_t, 4> xzyz = vector<float16_t, 3>(ubo_load_60_xz[0], ubo_load_60_y, ubo_load_60_xz[1]).xzyz;
+  uint2 ubo_load_61 = U[0].xy;
+  vector<float16_t, 2> ubo_load_61_xz = vector<float16_t, 2>(f16tof32(ubo_load_61 & 0xFFFF));
+  float16_t ubo_load_61_y = f16tof32(ubo_load_61[0] >> 16);
+  vector<float16_t, 4> xzzx = vector<float16_t, 3>(ubo_load_61_xz[0], ubo_load_61_y, ubo_load_61_xz[1]).xzzx;
+  uint2 ubo_load_62 = U[0].xy;
+  vector<float16_t, 2> ubo_load_62_xz = vector<float16_t, 2>(f16tof32(ubo_load_62 & 0xFFFF));
+  float16_t ubo_load_62_y = f16tof32(ubo_load_62[0] >> 16);
+  vector<float16_t, 4> xzzy = vector<float16_t, 3>(ubo_load_62_xz[0], ubo_load_62_y, ubo_load_62_xz[1]).xzzy;
+  uint2 ubo_load_63 = U[0].xy;
+  vector<float16_t, 2> ubo_load_63_xz = vector<float16_t, 2>(f16tof32(ubo_load_63 & 0xFFFF));
+  float16_t ubo_load_63_y = f16tof32(ubo_load_63[0] >> 16);
+  vector<float16_t, 4> xzzz = vector<float16_t, 3>(ubo_load_63_xz[0], ubo_load_63_y, ubo_load_63_xz[1]).xzzz;
+  uint2 ubo_load_64 = U[0].xy;
+  vector<float16_t, 2> ubo_load_64_xz = vector<float16_t, 2>(f16tof32(ubo_load_64 & 0xFFFF));
+  float16_t ubo_load_64_y = f16tof32(ubo_load_64[0] >> 16);
+  vector<float16_t, 4> yxxx = vector<float16_t, 3>(ubo_load_64_xz[0], ubo_load_64_y, ubo_load_64_xz[1]).yxxx;
+  uint2 ubo_load_65 = U[0].xy;
+  vector<float16_t, 2> ubo_load_65_xz = vector<float16_t, 2>(f16tof32(ubo_load_65 & 0xFFFF));
+  float16_t ubo_load_65_y = f16tof32(ubo_load_65[0] >> 16);
+  vector<float16_t, 4> yxxy = vector<float16_t, 3>(ubo_load_65_xz[0], ubo_load_65_y, ubo_load_65_xz[1]).yxxy;
+  uint2 ubo_load_66 = U[0].xy;
+  vector<float16_t, 2> ubo_load_66_xz = vector<float16_t, 2>(f16tof32(ubo_load_66 & 0xFFFF));
+  float16_t ubo_load_66_y = f16tof32(ubo_load_66[0] >> 16);
+  vector<float16_t, 4> yxxz = vector<float16_t, 3>(ubo_load_66_xz[0], ubo_load_66_y, ubo_load_66_xz[1]).yxxz;
+  uint2 ubo_load_67 = U[0].xy;
+  vector<float16_t, 2> ubo_load_67_xz = vector<float16_t, 2>(f16tof32(ubo_load_67 & 0xFFFF));
+  float16_t ubo_load_67_y = f16tof32(ubo_load_67[0] >> 16);
+  vector<float16_t, 4> yxyx = vector<float16_t, 3>(ubo_load_67_xz[0], ubo_load_67_y, ubo_load_67_xz[1]).yxyx;
+  uint2 ubo_load_68 = U[0].xy;
+  vector<float16_t, 2> ubo_load_68_xz = vector<float16_t, 2>(f16tof32(ubo_load_68 & 0xFFFF));
+  float16_t ubo_load_68_y = f16tof32(ubo_load_68[0] >> 16);
+  vector<float16_t, 4> yxyy = vector<float16_t, 3>(ubo_load_68_xz[0], ubo_load_68_y, ubo_load_68_xz[1]).yxyy;
+  uint2 ubo_load_69 = U[0].xy;
+  vector<float16_t, 2> ubo_load_69_xz = vector<float16_t, 2>(f16tof32(ubo_load_69 & 0xFFFF));
+  float16_t ubo_load_69_y = f16tof32(ubo_load_69[0] >> 16);
+  vector<float16_t, 4> yxyz = vector<float16_t, 3>(ubo_load_69_xz[0], ubo_load_69_y, ubo_load_69_xz[1]).yxyz;
+  uint2 ubo_load_70 = U[0].xy;
+  vector<float16_t, 2> ubo_load_70_xz = vector<float16_t, 2>(f16tof32(ubo_load_70 & 0xFFFF));
+  float16_t ubo_load_70_y = f16tof32(ubo_load_70[0] >> 16);
+  vector<float16_t, 4> yxzx = vector<float16_t, 3>(ubo_load_70_xz[0], ubo_load_70_y, ubo_load_70_xz[1]).yxzx;
+  uint2 ubo_load_71 = U[0].xy;
+  vector<float16_t, 2> ubo_load_71_xz = vector<float16_t, 2>(f16tof32(ubo_load_71 & 0xFFFF));
+  float16_t ubo_load_71_y = f16tof32(ubo_load_71[0] >> 16);
+  vector<float16_t, 4> yxzy = vector<float16_t, 3>(ubo_load_71_xz[0], ubo_load_71_y, ubo_load_71_xz[1]).yxzy;
+  uint2 ubo_load_72 = U[0].xy;
+  vector<float16_t, 2> ubo_load_72_xz = vector<float16_t, 2>(f16tof32(ubo_load_72 & 0xFFFF));
+  float16_t ubo_load_72_y = f16tof32(ubo_load_72[0] >> 16);
+  vector<float16_t, 4> yxzz = vector<float16_t, 3>(ubo_load_72_xz[0], ubo_load_72_y, ubo_load_72_xz[1]).yxzz;
+  uint2 ubo_load_73 = U[0].xy;
+  vector<float16_t, 2> ubo_load_73_xz = vector<float16_t, 2>(f16tof32(ubo_load_73 & 0xFFFF));
+  float16_t ubo_load_73_y = f16tof32(ubo_load_73[0] >> 16);
+  vector<float16_t, 4> yyxx = vector<float16_t, 3>(ubo_load_73_xz[0], ubo_load_73_y, ubo_load_73_xz[1]).yyxx;
+  uint2 ubo_load_74 = U[0].xy;
+  vector<float16_t, 2> ubo_load_74_xz = vector<float16_t, 2>(f16tof32(ubo_load_74 & 0xFFFF));
+  float16_t ubo_load_74_y = f16tof32(ubo_load_74[0] >> 16);
+  vector<float16_t, 4> yyxy = vector<float16_t, 3>(ubo_load_74_xz[0], ubo_load_74_y, ubo_load_74_xz[1]).yyxy;
+  uint2 ubo_load_75 = U[0].xy;
+  vector<float16_t, 2> ubo_load_75_xz = vector<float16_t, 2>(f16tof32(ubo_load_75 & 0xFFFF));
+  float16_t ubo_load_75_y = f16tof32(ubo_load_75[0] >> 16);
+  vector<float16_t, 4> yyxz = vector<float16_t, 3>(ubo_load_75_xz[0], ubo_load_75_y, ubo_load_75_xz[1]).yyxz;
+  uint2 ubo_load_76 = U[0].xy;
+  vector<float16_t, 2> ubo_load_76_xz = vector<float16_t, 2>(f16tof32(ubo_load_76 & 0xFFFF));
+  float16_t ubo_load_76_y = f16tof32(ubo_load_76[0] >> 16);
+  vector<float16_t, 4> yyyx = vector<float16_t, 3>(ubo_load_76_xz[0], ubo_load_76_y, ubo_load_76_xz[1]).yyyx;
+  uint2 ubo_load_77 = U[0].xy;
+  vector<float16_t, 2> ubo_load_77_xz = vector<float16_t, 2>(f16tof32(ubo_load_77 & 0xFFFF));
+  float16_t ubo_load_77_y = f16tof32(ubo_load_77[0] >> 16);
+  vector<float16_t, 4> yyyy = vector<float16_t, 3>(ubo_load_77_xz[0], ubo_load_77_y, ubo_load_77_xz[1]).yyyy;
+  uint2 ubo_load_78 = U[0].xy;
+  vector<float16_t, 2> ubo_load_78_xz = vector<float16_t, 2>(f16tof32(ubo_load_78 & 0xFFFF));
+  float16_t ubo_load_78_y = f16tof32(ubo_load_78[0] >> 16);
+  vector<float16_t, 4> yyyz = vector<float16_t, 3>(ubo_load_78_xz[0], ubo_load_78_y, ubo_load_78_xz[1]).yyyz;
+  uint2 ubo_load_79 = U[0].xy;
+  vector<float16_t, 2> ubo_load_79_xz = vector<float16_t, 2>(f16tof32(ubo_load_79 & 0xFFFF));
+  float16_t ubo_load_79_y = f16tof32(ubo_load_79[0] >> 16);
+  vector<float16_t, 4> yyzx = vector<float16_t, 3>(ubo_load_79_xz[0], ubo_load_79_y, ubo_load_79_xz[1]).yyzx;
+  uint2 ubo_load_80 = U[0].xy;
+  vector<float16_t, 2> ubo_load_80_xz = vector<float16_t, 2>(f16tof32(ubo_load_80 & 0xFFFF));
+  float16_t ubo_load_80_y = f16tof32(ubo_load_80[0] >> 16);
+  vector<float16_t, 4> yyzy = vector<float16_t, 3>(ubo_load_80_xz[0], ubo_load_80_y, ubo_load_80_xz[1]).yyzy;
+  uint2 ubo_load_81 = U[0].xy;
+  vector<float16_t, 2> ubo_load_81_xz = vector<float16_t, 2>(f16tof32(ubo_load_81 & 0xFFFF));
+  float16_t ubo_load_81_y = f16tof32(ubo_load_81[0] >> 16);
+  vector<float16_t, 4> yyzz = vector<float16_t, 3>(ubo_load_81_xz[0], ubo_load_81_y, ubo_load_81_xz[1]).yyzz;
+  uint2 ubo_load_82 = U[0].xy;
+  vector<float16_t, 2> ubo_load_82_xz = vector<float16_t, 2>(f16tof32(ubo_load_82 & 0xFFFF));
+  float16_t ubo_load_82_y = f16tof32(ubo_load_82[0] >> 16);
+  vector<float16_t, 4> yzxx = vector<float16_t, 3>(ubo_load_82_xz[0], ubo_load_82_y, ubo_load_82_xz[1]).yzxx;
+  uint2 ubo_load_83 = U[0].xy;
+  vector<float16_t, 2> ubo_load_83_xz = vector<float16_t, 2>(f16tof32(ubo_load_83 & 0xFFFF));
+  float16_t ubo_load_83_y = f16tof32(ubo_load_83[0] >> 16);
+  vector<float16_t, 4> yzxy = vector<float16_t, 3>(ubo_load_83_xz[0], ubo_load_83_y, ubo_load_83_xz[1]).yzxy;
+  uint2 ubo_load_84 = U[0].xy;
+  vector<float16_t, 2> ubo_load_84_xz = vector<float16_t, 2>(f16tof32(ubo_load_84 & 0xFFFF));
+  float16_t ubo_load_84_y = f16tof32(ubo_load_84[0] >> 16);
+  vector<float16_t, 4> yzxz = vector<float16_t, 3>(ubo_load_84_xz[0], ubo_load_84_y, ubo_load_84_xz[1]).yzxz;
+  uint2 ubo_load_85 = U[0].xy;
+  vector<float16_t, 2> ubo_load_85_xz = vector<float16_t, 2>(f16tof32(ubo_load_85 & 0xFFFF));
+  float16_t ubo_load_85_y = f16tof32(ubo_load_85[0] >> 16);
+  vector<float16_t, 4> yzyx = vector<float16_t, 3>(ubo_load_85_xz[0], ubo_load_85_y, ubo_load_85_xz[1]).yzyx;
+  uint2 ubo_load_86 = U[0].xy;
+  vector<float16_t, 2> ubo_load_86_xz = vector<float16_t, 2>(f16tof32(ubo_load_86 & 0xFFFF));
+  float16_t ubo_load_86_y = f16tof32(ubo_load_86[0] >> 16);
+  vector<float16_t, 4> yzyy = vector<float16_t, 3>(ubo_load_86_xz[0], ubo_load_86_y, ubo_load_86_xz[1]).yzyy;
+  uint2 ubo_load_87 = U[0].xy;
+  vector<float16_t, 2> ubo_load_87_xz = vector<float16_t, 2>(f16tof32(ubo_load_87 & 0xFFFF));
+  float16_t ubo_load_87_y = f16tof32(ubo_load_87[0] >> 16);
+  vector<float16_t, 4> yzyz = vector<float16_t, 3>(ubo_load_87_xz[0], ubo_load_87_y, ubo_load_87_xz[1]).yzyz;
+  uint2 ubo_load_88 = U[0].xy;
+  vector<float16_t, 2> ubo_load_88_xz = vector<float16_t, 2>(f16tof32(ubo_load_88 & 0xFFFF));
+  float16_t ubo_load_88_y = f16tof32(ubo_load_88[0] >> 16);
+  vector<float16_t, 4> yzzx = vector<float16_t, 3>(ubo_load_88_xz[0], ubo_load_88_y, ubo_load_88_xz[1]).yzzx;
+  uint2 ubo_load_89 = U[0].xy;
+  vector<float16_t, 2> ubo_load_89_xz = vector<float16_t, 2>(f16tof32(ubo_load_89 & 0xFFFF));
+  float16_t ubo_load_89_y = f16tof32(ubo_load_89[0] >> 16);
+  vector<float16_t, 4> yzzy = vector<float16_t, 3>(ubo_load_89_xz[0], ubo_load_89_y, ubo_load_89_xz[1]).yzzy;
+  uint2 ubo_load_90 = U[0].xy;
+  vector<float16_t, 2> ubo_load_90_xz = vector<float16_t, 2>(f16tof32(ubo_load_90 & 0xFFFF));
+  float16_t ubo_load_90_y = f16tof32(ubo_load_90[0] >> 16);
+  vector<float16_t, 4> yzzz = vector<float16_t, 3>(ubo_load_90_xz[0], ubo_load_90_y, ubo_load_90_xz[1]).yzzz;
+  uint2 ubo_load_91 = U[0].xy;
+  vector<float16_t, 2> ubo_load_91_xz = vector<float16_t, 2>(f16tof32(ubo_load_91 & 0xFFFF));
+  float16_t ubo_load_91_y = f16tof32(ubo_load_91[0] >> 16);
+  vector<float16_t, 4> zxxx = vector<float16_t, 3>(ubo_load_91_xz[0], ubo_load_91_y, ubo_load_91_xz[1]).zxxx;
+  uint2 ubo_load_92 = U[0].xy;
+  vector<float16_t, 2> ubo_load_92_xz = vector<float16_t, 2>(f16tof32(ubo_load_92 & 0xFFFF));
+  float16_t ubo_load_92_y = f16tof32(ubo_load_92[0] >> 16);
+  vector<float16_t, 4> zxxy = vector<float16_t, 3>(ubo_load_92_xz[0], ubo_load_92_y, ubo_load_92_xz[1]).zxxy;
+  uint2 ubo_load_93 = U[0].xy;
+  vector<float16_t, 2> ubo_load_93_xz = vector<float16_t, 2>(f16tof32(ubo_load_93 & 0xFFFF));
+  float16_t ubo_load_93_y = f16tof32(ubo_load_93[0] >> 16);
+  vector<float16_t, 4> zxxz = vector<float16_t, 3>(ubo_load_93_xz[0], ubo_load_93_y, ubo_load_93_xz[1]).zxxz;
+  uint2 ubo_load_94 = U[0].xy;
+  vector<float16_t, 2> ubo_load_94_xz = vector<float16_t, 2>(f16tof32(ubo_load_94 & 0xFFFF));
+  float16_t ubo_load_94_y = f16tof32(ubo_load_94[0] >> 16);
+  vector<float16_t, 4> zxyx = vector<float16_t, 3>(ubo_load_94_xz[0], ubo_load_94_y, ubo_load_94_xz[1]).zxyx;
+  uint2 ubo_load_95 = U[0].xy;
+  vector<float16_t, 2> ubo_load_95_xz = vector<float16_t, 2>(f16tof32(ubo_load_95 & 0xFFFF));
+  float16_t ubo_load_95_y = f16tof32(ubo_load_95[0] >> 16);
+  vector<float16_t, 4> zxyy = vector<float16_t, 3>(ubo_load_95_xz[0], ubo_load_95_y, ubo_load_95_xz[1]).zxyy;
+  uint2 ubo_load_96 = U[0].xy;
+  vector<float16_t, 2> ubo_load_96_xz = vector<float16_t, 2>(f16tof32(ubo_load_96 & 0xFFFF));
+  float16_t ubo_load_96_y = f16tof32(ubo_load_96[0] >> 16);
+  vector<float16_t, 4> zxyz = vector<float16_t, 3>(ubo_load_96_xz[0], ubo_load_96_y, ubo_load_96_xz[1]).zxyz;
+  uint2 ubo_load_97 = U[0].xy;
+  vector<float16_t, 2> ubo_load_97_xz = vector<float16_t, 2>(f16tof32(ubo_load_97 & 0xFFFF));
+  float16_t ubo_load_97_y = f16tof32(ubo_load_97[0] >> 16);
+  vector<float16_t, 4> zxzx = vector<float16_t, 3>(ubo_load_97_xz[0], ubo_load_97_y, ubo_load_97_xz[1]).zxzx;
+  uint2 ubo_load_98 = U[0].xy;
+  vector<float16_t, 2> ubo_load_98_xz = vector<float16_t, 2>(f16tof32(ubo_load_98 & 0xFFFF));
+  float16_t ubo_load_98_y = f16tof32(ubo_load_98[0] >> 16);
+  vector<float16_t, 4> zxzy = vector<float16_t, 3>(ubo_load_98_xz[0], ubo_load_98_y, ubo_load_98_xz[1]).zxzy;
+  uint2 ubo_load_99 = U[0].xy;
+  vector<float16_t, 2> ubo_load_99_xz = vector<float16_t, 2>(f16tof32(ubo_load_99 & 0xFFFF));
+  float16_t ubo_load_99_y = f16tof32(ubo_load_99[0] >> 16);
+  vector<float16_t, 4> zxzz = vector<float16_t, 3>(ubo_load_99_xz[0], ubo_load_99_y, ubo_load_99_xz[1]).zxzz;
+  uint2 ubo_load_100 = U[0].xy;
+  vector<float16_t, 2> ubo_load_100_xz = vector<float16_t, 2>(f16tof32(ubo_load_100 & 0xFFFF));
+  float16_t ubo_load_100_y = f16tof32(ubo_load_100[0] >> 16);
+  vector<float16_t, 4> zyxx = vector<float16_t, 3>(ubo_load_100_xz[0], ubo_load_100_y, ubo_load_100_xz[1]).zyxx;
+  uint2 ubo_load_101 = U[0].xy;
+  vector<float16_t, 2> ubo_load_101_xz = vector<float16_t, 2>(f16tof32(ubo_load_101 & 0xFFFF));
+  float16_t ubo_load_101_y = f16tof32(ubo_load_101[0] >> 16);
+  vector<float16_t, 4> zyxy = vector<float16_t, 3>(ubo_load_101_xz[0], ubo_load_101_y, ubo_load_101_xz[1]).zyxy;
+  uint2 ubo_load_102 = U[0].xy;
+  vector<float16_t, 2> ubo_load_102_xz = vector<float16_t, 2>(f16tof32(ubo_load_102 & 0xFFFF));
+  float16_t ubo_load_102_y = f16tof32(ubo_load_102[0] >> 16);
+  vector<float16_t, 4> zyxz = vector<float16_t, 3>(ubo_load_102_xz[0], ubo_load_102_y, ubo_load_102_xz[1]).zyxz;
+  uint2 ubo_load_103 = U[0].xy;
+  vector<float16_t, 2> ubo_load_103_xz = vector<float16_t, 2>(f16tof32(ubo_load_103 & 0xFFFF));
+  float16_t ubo_load_103_y = f16tof32(ubo_load_103[0] >> 16);
+  vector<float16_t, 4> zyyx = vector<float16_t, 3>(ubo_load_103_xz[0], ubo_load_103_y, ubo_load_103_xz[1]).zyyx;
+  uint2 ubo_load_104 = U[0].xy;
+  vector<float16_t, 2> ubo_load_104_xz = vector<float16_t, 2>(f16tof32(ubo_load_104 & 0xFFFF));
+  float16_t ubo_load_104_y = f16tof32(ubo_load_104[0] >> 16);
+  vector<float16_t, 4> zyyy = vector<float16_t, 3>(ubo_load_104_xz[0], ubo_load_104_y, ubo_load_104_xz[1]).zyyy;
+  uint2 ubo_load_105 = U[0].xy;
+  vector<float16_t, 2> ubo_load_105_xz = vector<float16_t, 2>(f16tof32(ubo_load_105 & 0xFFFF));
+  float16_t ubo_load_105_y = f16tof32(ubo_load_105[0] >> 16);
+  vector<float16_t, 4> zyyz = vector<float16_t, 3>(ubo_load_105_xz[0], ubo_load_105_y, ubo_load_105_xz[1]).zyyz;
+  uint2 ubo_load_106 = U[0].xy;
+  vector<float16_t, 2> ubo_load_106_xz = vector<float16_t, 2>(f16tof32(ubo_load_106 & 0xFFFF));
+  float16_t ubo_load_106_y = f16tof32(ubo_load_106[0] >> 16);
+  vector<float16_t, 4> zyzx = vector<float16_t, 3>(ubo_load_106_xz[0], ubo_load_106_y, ubo_load_106_xz[1]).zyzx;
+  uint2 ubo_load_107 = U[0].xy;
+  vector<float16_t, 2> ubo_load_107_xz = vector<float16_t, 2>(f16tof32(ubo_load_107 & 0xFFFF));
+  float16_t ubo_load_107_y = f16tof32(ubo_load_107[0] >> 16);
+  vector<float16_t, 4> zyzy = vector<float16_t, 3>(ubo_load_107_xz[0], ubo_load_107_y, ubo_load_107_xz[1]).zyzy;
+  uint2 ubo_load_108 = U[0].xy;
+  vector<float16_t, 2> ubo_load_108_xz = vector<float16_t, 2>(f16tof32(ubo_load_108 & 0xFFFF));
+  float16_t ubo_load_108_y = f16tof32(ubo_load_108[0] >> 16);
+  vector<float16_t, 4> zyzz = vector<float16_t, 3>(ubo_load_108_xz[0], ubo_load_108_y, ubo_load_108_xz[1]).zyzz;
+  uint2 ubo_load_109 = U[0].xy;
+  vector<float16_t, 2> ubo_load_109_xz = vector<float16_t, 2>(f16tof32(ubo_load_109 & 0xFFFF));
+  float16_t ubo_load_109_y = f16tof32(ubo_load_109[0] >> 16);
+  vector<float16_t, 4> zzxx = vector<float16_t, 3>(ubo_load_109_xz[0], ubo_load_109_y, ubo_load_109_xz[1]).zzxx;
+  uint2 ubo_load_110 = U[0].xy;
+  vector<float16_t, 2> ubo_load_110_xz = vector<float16_t, 2>(f16tof32(ubo_load_110 & 0xFFFF));
+  float16_t ubo_load_110_y = f16tof32(ubo_load_110[0] >> 16);
+  vector<float16_t, 4> zzxy = vector<float16_t, 3>(ubo_load_110_xz[0], ubo_load_110_y, ubo_load_110_xz[1]).zzxy;
+  uint2 ubo_load_111 = U[0].xy;
+  vector<float16_t, 2> ubo_load_111_xz = vector<float16_t, 2>(f16tof32(ubo_load_111 & 0xFFFF));
+  float16_t ubo_load_111_y = f16tof32(ubo_load_111[0] >> 16);
+  vector<float16_t, 4> zzxz = vector<float16_t, 3>(ubo_load_111_xz[0], ubo_load_111_y, ubo_load_111_xz[1]).zzxz;
+  uint2 ubo_load_112 = U[0].xy;
+  vector<float16_t, 2> ubo_load_112_xz = vector<float16_t, 2>(f16tof32(ubo_load_112 & 0xFFFF));
+  float16_t ubo_load_112_y = f16tof32(ubo_load_112[0] >> 16);
+  vector<float16_t, 4> zzyx = vector<float16_t, 3>(ubo_load_112_xz[0], ubo_load_112_y, ubo_load_112_xz[1]).zzyx;
+  uint2 ubo_load_113 = U[0].xy;
+  vector<float16_t, 2> ubo_load_113_xz = vector<float16_t, 2>(f16tof32(ubo_load_113 & 0xFFFF));
+  float16_t ubo_load_113_y = f16tof32(ubo_load_113[0] >> 16);
+  vector<float16_t, 4> zzyy = vector<float16_t, 3>(ubo_load_113_xz[0], ubo_load_113_y, ubo_load_113_xz[1]).zzyy;
+  uint2 ubo_load_114 = U[0].xy;
+  vector<float16_t, 2> ubo_load_114_xz = vector<float16_t, 2>(f16tof32(ubo_load_114 & 0xFFFF));
+  float16_t ubo_load_114_y = f16tof32(ubo_load_114[0] >> 16);
+  vector<float16_t, 4> zzyz = vector<float16_t, 3>(ubo_load_114_xz[0], ubo_load_114_y, ubo_load_114_xz[1]).zzyz;
+  uint2 ubo_load_115 = U[0].xy;
+  vector<float16_t, 2> ubo_load_115_xz = vector<float16_t, 2>(f16tof32(ubo_load_115 & 0xFFFF));
+  float16_t ubo_load_115_y = f16tof32(ubo_load_115[0] >> 16);
+  vector<float16_t, 4> zzzx = vector<float16_t, 3>(ubo_load_115_xz[0], ubo_load_115_y, ubo_load_115_xz[1]).zzzx;
+  uint2 ubo_load_116 = U[0].xy;
+  vector<float16_t, 2> ubo_load_116_xz = vector<float16_t, 2>(f16tof32(ubo_load_116 & 0xFFFF));
+  float16_t ubo_load_116_y = f16tof32(ubo_load_116[0] >> 16);
+  vector<float16_t, 4> zzzy = vector<float16_t, 3>(ubo_load_116_xz[0], ubo_load_116_y, ubo_load_116_xz[1]).zzzy;
+  uint2 ubo_load_117 = U[0].xy;
+  vector<float16_t, 2> ubo_load_117_xz = vector<float16_t, 2>(f16tof32(ubo_load_117 & 0xFFFF));
+  float16_t ubo_load_117_y = f16tof32(ubo_load_117[0] >> 16);
+  vector<float16_t, 4> zzzz = vector<float16_t, 3>(ubo_load_117_xz[0], ubo_load_117_y, ubo_load_117_xz[1]).zzzz;
+}
diff --git a/test/tint/expressions/swizzle/read/vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/swizzle/read/vec3/f16.wgsl.expected.fxc.hlsl
index 09b853a..0a08677 100644
--- a/test/tint/expressions/swizzle/read/vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/swizzle/read/vec3/f16.wgsl.expected.fxc.hlsl
@@ -134,6 +134,3 @@
   vector<float16_t, 4> zzzy = P.v.zzzy;
   vector<float16_t, 4> zzzz = P.v.zzzz;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001DD905D7700(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.fxc.hlsl
index 4053a55..ed4e606 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.fxc.hlsl
@@ -1,18 +1,15 @@
 SKIP: FAILED
 
-swizzle/write/packed_vec3/f16.wgsl:3:8 error: using f16 types in 'storage' address space is not implemented yet
-    v: vec3<f16>,
-       ^^^^^^^^^
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+  return;
+}
 
-swizzle/write/packed_vec3/f16.wgsl:2:1 note: see layout of struct:
-/*           align(8) size(8) */ struct S {
-/* offset(0) align(8) size(6) */   v : vec3<f16>;
-/* offset(6) align(1) size(2) */   // -- implicit struct size padding --;
-/*                            */ };
-struct S {
-^^^^^^
+RWByteAddressBuffer U : register(u0, space0);
 
-swizzle/write/packed_vec3/f16.wgsl:6:48 note: see declaration of variable
-@group(0) @binding(0) var<storage, read_write> U : S;
-                                               ^
-
+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));
+}
diff --git a/test/tint/expressions/swizzle/write/vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/swizzle/write/vec3/f16.wgsl.expected.fxc.hlsl
index bf281be..c2e8fc2 100644
--- a/test/tint/expressions/swizzle/write/vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/swizzle/write/vec3/f16.wgsl.expected.fxc.hlsl
@@ -17,6 +17,3 @@
   P.v.y = float16_t(2.0h);
   P.v.z = float16_t(3.0h);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000029037AE4370(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.fxc.hlsl
index 29aa0dc..d51a368 100644
--- a/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const matrix<float16_t, 2, 2> tint_symbol = m();
   float2x2 v = float2x2(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000026A2F8678E0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.fxc.hlsl
index 49af747..f7d416a 100644
--- a/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float2x2 tint_symbol = m();
   matrix<float16_t, 2, 2> v = matrix<float16_t, 2, 2>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002331C288CF0(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.fxc.hlsl
index 599a78d..38461f8 100644
--- a/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000017A260403B0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.fxc.hlsl
index 9fafc59..778637f 100644
--- a/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   float2x2 v = float2x2(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000023103DB6760(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.fxc.hlsl
index a90fee3..c78385e 100644
--- a/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   matrix<float16_t, 2, 2> v = matrix<float16_t, 2, 2>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000022E5A1842F0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.fxc.hlsl
index 9a57aa5..171cffa 100644
--- a/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const matrix<float16_t, 2, 3> tint_symbol = m();
   float2x3 v = float2x3(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000175F40071F0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.fxc.hlsl
index 81c9931..63e88c5 100644
--- a/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float2x3 tint_symbol = m();
   matrix<float16_t, 2, 3> v = matrix<float16_t, 2, 3>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000029F80D27980(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.fxc.hlsl
index e7c062b..9984a52 100644
--- a/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001558B1D0610(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.fxc.hlsl
index cfa50df..6ea7f4d 100644
--- a/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   float2x3 v = float2x3(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000022FCB692870(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.fxc.hlsl
index c940182..59d55c1 100644
--- a/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   matrix<float16_t, 2, 3> v = matrix<float16_t, 2, 3>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000220E99769D0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.fxc.hlsl
index a0b3016..2a6ea80 100644
--- a/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const matrix<float16_t, 2, 4> tint_symbol = m();
   float2x4 v = float2x4(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000197CB8872F0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.fxc.hlsl
index 464420c..d112af6 100644
--- a/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float2x4 tint_symbol = m();
   matrix<float16_t, 2, 4> v = matrix<float16_t, 2, 4>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000278DD4C1620(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.fxc.hlsl
index f3243ae..da3df09 100644
--- a/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001DA11702BC0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.fxc.hlsl
index 4697fe9..4c5201b 100644
--- a/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   float2x4 v = float2x4(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001865A835AF0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.fxc.hlsl
index 326ec5f..be1f3bc 100644
--- a/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   matrix<float16_t, 2, 4> v = matrix<float16_t, 2, 4>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000016793C61BF0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.fxc.hlsl
index 3fb9585..0966d1b 100644
--- a/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const matrix<float16_t, 3, 2> tint_symbol = m();
   float3x2 v = float3x2(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002EC3AF88640(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.fxc.hlsl
index e66dee8..0ba26c0 100644
--- a/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float3x2 tint_symbol = m();
   matrix<float16_t, 3, 2> v = matrix<float16_t, 3, 2>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000269ABB298F0(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.fxc.hlsl
index 0deca3a..41b07e0 100644
--- a/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000026E16B10460(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.fxc.hlsl
index adac0f4..5ad6db7 100644
--- a/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   float3x2 v = float3x2(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002B0F3EB5B60(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.fxc.hlsl
index c87aeea..1c7b7fc 100644
--- a/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   matrix<float16_t, 3, 2> v = matrix<float16_t, 3, 2>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000029207815AE0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.fxc.hlsl
index 4bff935..d2b71cc 100644
--- a/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const matrix<float16_t, 3, 3> tint_symbol = m();
   float3x3 v = float3x3(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000224D29B9280(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.fxc.hlsl
index 7f386dd..7940b57 100644
--- a/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float3x3 tint_symbol = m();
   matrix<float16_t, 3, 3> v = matrix<float16_t, 3, 3>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000267AF1B7880(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.fxc.hlsl
index 4bd5ba2..ab64d60 100644
--- a/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000252573B05F0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.fxc.hlsl
index 80c9bc7..bb46c81 100644
--- a/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   float3x3 v = float3x3(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001D779876470(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.fxc.hlsl
index 73914b8..d9d45b7 100644
--- a/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   matrix<float16_t, 3, 3> v = matrix<float16_t, 3, 3>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000020807F65650(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.fxc.hlsl
index 4e718e4..2339b2c 100644
--- a/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const matrix<float16_t, 3, 4> tint_symbol = m();
   float3x4 v = float3x4(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000216C7AE7340(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.fxc.hlsl
index 878092a..60e79c6 100644
--- a/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float3x4 tint_symbol = m();
   matrix<float16_t, 3, 4> v = matrix<float16_t, 3, 4>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001C84A702630(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.fxc.hlsl
index b101790..072b96d 100644
--- a/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001A6F7BC28A0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.fxc.hlsl
index afdca80..0ad32aa 100644
--- a/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   float3x4 v = float3x4(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000020E077F91B0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.fxc.hlsl
index 988494a..fb69b54 100644
--- a/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   matrix<float16_t, 3, 4> v = matrix<float16_t, 3, 4>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000014A025857D0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.fxc.hlsl
index dfbad10..da029f4 100644
--- a/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const matrix<float16_t, 4, 2> tint_symbol = m();
   float4x2 v = float4x2(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000228EFA57270(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.fxc.hlsl
index 882ab93..f079218 100644
--- a/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float4x2 tint_symbol = m();
   matrix<float16_t, 4, 2> v = matrix<float16_t, 4, 2>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000026668627530(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.fxc.hlsl
index 1c471ea..e492db3 100644
--- a/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000014FAA172AF0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.fxc.hlsl
index 414a76c..490bada 100644
--- a/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   float4x2 v = float4x2(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001628F3F6160(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.fxc.hlsl
index 90cf1dc4..bb0564b 100644
--- a/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   matrix<float16_t, 4, 2> v = matrix<float16_t, 4, 2>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002880E1B53D0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.fxc.hlsl
index a17223b..4c5d5d5 100644
--- a/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const matrix<float16_t, 4, 3> tint_symbol = m();
   float4x3 v = float4x3(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002B481E37820(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.fxc.hlsl
index 13133ba..fd96078 100644
--- a/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float4x3 tint_symbol = m();
   matrix<float16_t, 4, 3> v = matrix<float16_t, 4, 3>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001AAB4DC5CD0(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.fxc.hlsl
index 5f4774f..eecefef 100644
--- a/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001EACB1D01F0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.fxc.hlsl
index cdc83c7..2defbe4 100644
--- a/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   float4x3 v = float4x3(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000015A33866E20(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.fxc.hlsl
index 129b04d..517eeb2 100644
--- a/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   matrix<float16_t, 4, 3> v = matrix<float16_t, 4, 3>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000012140D82540(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.fxc.hlsl
index f146840..f095d83 100644
--- a/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const matrix<float16_t, 4, 4> tint_symbol = m();
   float4x4 v = float4x4(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001A405986C50(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.fxc.hlsl
index 29c0fed..6344b7f 100644
--- a/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float4x4 tint_symbol = m();
   matrix<float16_t, 4, 4> v = matrix<float16_t, 4, 4>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000020C0B747410(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.fxc.hlsl
index 441b675..f3f9bc3 100644
--- a/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000026BBBC557B0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.fxc.hlsl
index a2a682f..dd10555 100644
--- a/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   float4x4 v = float4x4(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000024F4DC87730(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.fxc.hlsl
index d42d91f..71b8bdd 100644
--- a/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   matrix<float16_t, 4, 4> v = matrix<float16_t, 4, 4>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000014F5CB159F0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.fxc.hlsl
index 7c3af7e..678ec32 100644
--- a/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.fxc.hlsl
@@ -16,7 +16,3 @@
   const bool tint_symbol = m();
   float16_t v = float16_t(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001E8286B1350(15,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001E8286B1350(15,13): error X3000: unrecognized identifier 'v'
-
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.fxc.hlsl
index da6c51e..e8723e1 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float16_t tint_symbol = m();
   bool v = bool(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000020415C557F0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.fxc.hlsl
index b7f6eb0..0c32e44 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float16_t tint_symbol = m();
   float v = float(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001CFE5701350(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.fxc.hlsl
index 97ff042..30e8331 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float16_t tint_symbol = m();
   int v = int(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001E819715600(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.fxc.hlsl
index 08fc672..c7aa781 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float16_t tint_symbol = m();
   uint v = uint(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001DAF6968AE0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.fxc.hlsl
index acaff84..f726dfe 100644
--- a/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.fxc.hlsl
@@ -16,7 +16,3 @@
   const float tint_symbol = m();
   float16_t v = float16_t(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002636E171350(15,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002636E171350(15,13): error X3000: unrecognized identifier 'v'
-
diff --git a/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.fxc.hlsl
index 5409726..cd14b08 100644
--- a/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.fxc.hlsl
@@ -16,7 +16,3 @@
   const int tint_symbol = m();
   float16_t v = float16_t(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000029BAA431590(15,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000029BAA431590(15,13): error X3000: unrecognized identifier 'v'
-
diff --git a/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.fxc.hlsl
index 9ce1f010f..062d9f6 100644
--- a/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.fxc.hlsl
@@ -16,7 +16,3 @@
   const uint tint_symbol = m();
   float16_t v = float16_t(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000027A60011350(15,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000027A60011350(15,13): error X3000: unrecognized identifier 'v'
-
diff --git a/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.fxc.hlsl
index 12226e2..fc506c1 100644
--- a/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static float16_t u = float16_t(1.0h);
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001F86D5128C0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.fxc.hlsl
index f4351d7..fc506c1 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static float16_t u = float16_t(1.0h);
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001E657EE6CC0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.fxc.hlsl
index b4d0214..fc506c1 100644
--- a/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static float16_t u = float16_t(1.0h);
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000142B88027F0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.fxc.hlsl
index 5b64979..fc506c1 100644
--- a/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static float16_t u = float16_t(1.0h);
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002034FAF6CC0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.fxc.hlsl
index 77d09d5..12e11d2 100644
--- a/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const float16_t v = float16_t(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001A077FD2610(9,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.fxc.hlsl
index b939913..715f751 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const bool v = bool(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000162B2F85E70(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.fxc.hlsl
index 2230560..edfdc82 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const float v = float(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001D158112A20(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.fxc.hlsl
index e2cf919..8c8eae7 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const int v = int(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001CFDDC92A20(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.fxc.hlsl
index 25c01be..9cdd3b4 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const uint v = uint(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001FB41A62990(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.fxc.hlsl
index de1dc48..da1cac2 100644
--- a/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const float16_t v = float16_t(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001955C252970(9,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.fxc.hlsl
index 3c5cb25..dd82914 100644
--- a/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const float16_t v = float16_t(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000026C24F72E80(9,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.fxc.hlsl
index a9669f6..4477cc6 100644
--- a/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const float16_t v = float16_t(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002C39A2D2A10(9,9-17): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.fxc.hlsl
index 1c37f1b..1192fc7 100644
--- a/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const bool2 tint_symbol = m();
   vector<float16_t, 2> v = vector<float16_t, 2>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000226F33C8410(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.fxc.hlsl
index 6edde3a..2cd41d9 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const vector<float16_t, 2> tint_symbol = m();
   bool2 v = bool2(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000183B34171B0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.fxc.hlsl
index e797e27..10f9cdb 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const vector<float16_t, 2> tint_symbol = m();
   float2 v = float2(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000028C31298CE0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.fxc.hlsl
index 9e56d92..94472f9 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const vector<float16_t, 2> tint_symbol = m();
   int2 v = int2(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000255D68477C0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.fxc.hlsl
index 4d4778e..d0f5dd5 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const vector<float16_t, 2> tint_symbol = m();
   uint2 v = uint2(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001C78EFF77C0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.fxc.hlsl
index 01e68b1..a8fdd2e 100644
--- a/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float2 tint_symbol = m();
   vector<float16_t, 2> v = vector<float16_t, 2>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000018B591277C0(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.fxc.hlsl
index 3db01bc..44c9bd7 100644
--- a/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const int2 tint_symbol = m();
   vector<float16_t, 2> v = vector<float16_t, 2>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001E8494E77C0(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.fxc.hlsl
index aed9579..50445e5 100644
--- a/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const uint2 tint_symbol = m();
   vector<float16_t, 2> v = vector<float16_t, 2>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001545EF51F40(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.fxc.hlsl
index 4bb521c..c2afd91 100644
--- a/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000027D08B330C0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.fxc.hlsl
index fce230c..c2afd91 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001D0842E29C0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.fxc.hlsl
index 5cad1db..c2afd91 100644
--- a/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002DED7652730(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.fxc.hlsl
index 8474a06..c2afd91 100644
--- a/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000151E70A29D0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.fxc.hlsl
index b036786..4d9ad80 100644
--- a/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const vector<float16_t, 2> v = vector<float16_t, 2>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002B8624A4D70(9,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.fxc.hlsl
index c42b84e..78c6cd4 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const bool2 v = bool2(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001FF98498800(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.fxc.hlsl
index 39816e8..0fdee11 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const float2 v = float2(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000163B9F34D70(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.fxc.hlsl
index 77c2aec..62a73b8 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const int2 v = int2(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000014A047A6A10(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.fxc.hlsl
index ff34c48..a1ac83f 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const uint2 v = uint2(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001AF42F8A1A0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.fxc.hlsl
index 054aad8..f8e969e 100644
--- a/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const vector<float16_t, 2> v = vector<float16_t, 2>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000177C49E23E0(9,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.fxc.hlsl
index edc9d29..266e024 100644
--- a/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const vector<float16_t, 2> v = vector<float16_t, 2>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001E2861D23E0(9,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.fxc.hlsl
index c2ff56c..3b72afa 100644
--- a/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const vector<float16_t, 2> v = vector<float16_t, 2>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000242F4738800(9,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.fxc.hlsl
index 006557f..df95d8c 100644
--- a/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const bool3 tint_symbol = m();
   vector<float16_t, 3> v = vector<float16_t, 3>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002245D6877C0(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.fxc.hlsl
index 7bf2456..01f50cb 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const vector<float16_t, 3> tint_symbol = m();
   bool3 v = bool3(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001DBFB151F40(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.fxc.hlsl
index 85891eb..34d2d23 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const vector<float16_t, 3> tint_symbol = m();
   float3 v = float3(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000237A4E82460(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.fxc.hlsl
index fe5387d..df43267 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const vector<float16_t, 3> tint_symbol = m();
   int3 v = int3(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001F6E8397820(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.fxc.hlsl
index c7b3b96..177dc3a 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const vector<float16_t, 3> tint_symbol = m();
   uint3 v = uint3(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000160CA8424E0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.fxc.hlsl
index 9c5e33d..8538ab6 100644
--- a/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float3 tint_symbol = m();
   vector<float16_t, 3> v = vector<float16_t, 3>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000024BEE975800(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.fxc.hlsl
index fd82794..b127e08 100644
--- a/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const int3 tint_symbol = m();
   vector<float16_t, 3> v = vector<float16_t, 3>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001DBE24284F0(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.fxc.hlsl
index ff21d11..eaabaff 100644
--- a/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const uint3 tint_symbol = m();
   vector<float16_t, 3> v = vector<float16_t, 3>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000022F414977C0(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.fxc.hlsl
index 8486139..aa68910 100644
--- a/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002DECD1C6F70(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.fxc.hlsl
index f8e54a6..aa68910 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000019980C729D0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.fxc.hlsl
index cb285ff..aa68910 100644
--- a/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000018BB09C1C10(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.fxc.hlsl
index 461ed7a..aa68910 100644
--- a/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001986DBC29D0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.fxc.hlsl
index e3d0770..7ee9ea8 100644
--- a/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const vector<float16_t, 3> v = vector<float16_t, 3>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002AF0BED2160(9,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.fxc.hlsl
index b29f4a4..7fd35e33 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const bool3 v = bool3(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000220C8376A10(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.fxc.hlsl
index 8963388..3b4849a 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const float3 v = float3(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001C38EE28800(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.fxc.hlsl
index 80988a4..30a25c3 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const int3 v = int3(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002B8E3AD58E0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.fxc.hlsl
index 9e52dbf..cf2e63d 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const uint3 v = uint3(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001D88B216170(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.fxc.hlsl
index ac81691..6c49177 100644
--- a/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const vector<float16_t, 3> v = vector<float16_t, 3>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000019E912623E0(9,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.fxc.hlsl
index 38f1485..6ef2305 100644
--- a/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const vector<float16_t, 3> v = vector<float16_t, 3>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000002E64F7B24A0(9,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.fxc.hlsl
index 60daa3d..4d00fa8 100644
--- a/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const vector<float16_t, 3> v = vector<float16_t, 3>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000140A91D3590(9,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.fxc.hlsl
index 8b1ede8..8785a91 100644
--- a/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const bool4 tint_symbol = m();
   vector<float16_t, 4> v = vector<float16_t, 4>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001EBBB9F6C50(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.fxc.hlsl
index 09cddf2..583f9f6 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const vector<float16_t, 4> tint_symbol = m();
   bool4 v = bool4(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000241137215B0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.fxc.hlsl
index 27ca0e1..e7ef7d5 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const vector<float16_t, 4> tint_symbol = m();
   float4 v = float4(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001C8C12524D0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.fxc.hlsl
index ebe3358..df89247 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const vector<float16_t, 4> tint_symbol = m();
   int4 v = int4(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000236210144B0(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.fxc.hlsl
index 54d5af4..da8639c 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const vector<float16_t, 4> tint_symbol = m();
   uint4 v = uint4(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000020C76A92440(6,8-16): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.fxc.hlsl
index 32fd0fc..a57362d 100644
--- a/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const float4 tint_symbol = m();
   vector<float16_t, 4> v = vector<float16_t, 4>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001BEFD841DB0(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.fxc.hlsl
index 432afc6..56fca67 100644
--- a/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const int4 tint_symbol = m();
   vector<float16_t, 4> v = vector<float16_t, 4>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000272AD4875E0(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.fxc.hlsl
index 37692b2..f752da2 100644
--- a/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.fxc.hlsl
@@ -16,6 +16,3 @@
   const uint4 tint_symbol = m();
   vector<float16_t, 4> v = vector<float16_t, 4>(tint_symbol);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000026033CC14C0(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.fxc.hlsl
index 4cba756..38006b7 100644
--- a/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001B383CD29D0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.fxc.hlsl
index 569583a..38006b7 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x000001F94D6E2680(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.fxc.hlsl
index 1161d3c..38006b7 100644
--- a/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000020644FC2930(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.fxc.hlsl
index b856c1b..38006b7 100644
--- a/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000017E668629D0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.fxc.hlsl
index 664b1a0..5e5bd00 100644
--- a/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const vector<float16_t, 4> v = vector<float16_t, 4>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000198D15D4D70(9,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.fxc.hlsl
index 52ad4b0..d97c0d2 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const bool4 v = bool4(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000021275822660(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.fxc.hlsl
index 3ca8b05..eae465b 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const float4 v = float4(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x00000203C6842F20(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.fxc.hlsl
index 7db5269..3d4b0a3 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const int4 v = int4(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000020709DB6170(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.fxc.hlsl
index 310be0b..5562508 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const uint4 v = uint4(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000024FA6C38800(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.fxc.hlsl
index 95ddf74..63dbc39 100644
--- a/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const vector<float16_t, 4> v = vector<float16_t, 4>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000019C598E6800(9,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.fxc.hlsl
index 3c1a6b0..307f250 100644
--- a/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const vector<float16_t, 4> v = vector<float16_t, 4>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000020AD0F04D70(9,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.fxc.hlsl
index c301529..4d54ab4 100644
--- a/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.fxc.hlsl
@@ -10,6 +10,3 @@
 void f() {
   const vector<float16_t, 4> v = vector<float16_t, 4>(u);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\type_conv\Shader@0x0000020D1A4520E0(9,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.fxc.hlsl
index 23c5772..7b064f9 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 2, 2> m_1 = matrix<float16_t, 2, 2>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001E4D4452850(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.fxc.hlsl
index 4044a4a..a03b5ac 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001F6AB2037B0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.fxc.hlsl
index 8c1367c..a03b5ac 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000020882B36A90(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.fxc.hlsl
index d54b18f..7b064f9 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 2, 2> m_1 = matrix<float16_t, 2, 2>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000192F6581860(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.fxc.hlsl
index fbb3635..a03b5ac 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002A196C42AF0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.fxc.hlsl
index d928439..a03b5ac 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002405AAC7810(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.fxc.hlsl
index 950ec5e..e9f39c6 100644
--- a/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.fxc.hlsl
@@ -9,7 +9,3 @@
   matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
   const matrix<float16_t, 2, 2> m_1 = matrix<float16_t, 2, 2>(m);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001826FCF69C0(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001826FCF69C0(8,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.fxc.hlsl
index 33b6202..4bb1e3a 100644
--- a/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002A75BF02D20(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.fxc.hlsl
index 691260d..c282647 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 2, 3> m_1 = matrix<float16_t, 2, 3>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000190AE6414C0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.fxc.hlsl
index cdc284c..3650903 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002078D6517E0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.fxc.hlsl
index 4d08566..3650903 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000023F007541A0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.fxc.hlsl
index 165c82d..c282647 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 2, 3> m_1 = matrix<float16_t, 2, 3>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001871FDC1880(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.fxc.hlsl
index a5167c0..3650903 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000020FD5E22900(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.fxc.hlsl
index 2b57eed..3650903 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000020795733BD0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.fxc.hlsl
index b8cd076..218711a 100644
--- a/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.fxc.hlsl
@@ -9,7 +9,3 @@
   matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
   const matrix<float16_t, 2, 3> m_1 = matrix<float16_t, 2, 3>(m);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000221FD786780(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000221FD786780(8,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.fxc.hlsl
index c4d1981..8a70a8a 100644
--- a/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001F06D082D20(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.fxc.hlsl
index d06754f..240183e 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 2, 4> m_1 = matrix<float16_t, 2, 4>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001926F041BB0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.fxc.hlsl
index dff0490..81cbdd1 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001F7AAA504B0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.fxc.hlsl
index 12f8c04..81cbdd1 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000020136922A40(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.fxc.hlsl
index 5c3cd1d..240183e 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 2, 4> m_1 = matrix<float16_t, 2, 4>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000171282B1C50(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.fxc.hlsl
index 11dc3ce..81cbdd1 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000022AEBBF0410(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.fxc.hlsl
index e3e5366..81cbdd1 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000016AAA603900(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.fxc.hlsl
index 0fd2b27..f9bf1f3 100644
--- a/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.fxc.hlsl
@@ -9,7 +9,3 @@
   matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
   const matrix<float16_t, 2, 4> m_1 = matrix<float16_t, 2, 4>(m);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001DD62E069C0(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001DD62E069C0(8,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.fxc.hlsl
index 3d62e3b..d0de80a 100644
--- a/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000028156C54E00(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.fxc.hlsl
index 5c60543..e6b2ea4 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 3, 2> m_1 = matrix<float16_t, 3, 2>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001B47F361BB0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.fxc.hlsl
index cdfa8ea..d40eae8 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001FF8A2507D0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.fxc.hlsl
index b5c0e7e..d40eae8 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000020D8E7A4940(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.fxc.hlsl
index 21dba90..e6b2ea4 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 3, 2> m_1 = matrix<float16_t, 3, 2>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001DBAE481200(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.fxc.hlsl
index a2478eb..d40eae8 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000224423219B0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.fxc.hlsl
index afd8a43..d40eae8 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000016648824340(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.fxc.hlsl
index b792622..8df684e 100644
--- a/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.fxc.hlsl
@@ -9,7 +9,3 @@
   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);
   const matrix<float16_t, 3, 2> m_1 = matrix<float16_t, 3, 2>(m);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000023975DC6E10(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000023975DC6E10(8,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.fxc.hlsl
index d08a30c..4609496 100644
--- a/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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);
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001DBA4A93F60(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.fxc.hlsl
index 542169b..ba83be1 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 3, 3> m_1 = matrix<float16_t, 3, 3>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001A5119D1200(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.fxc.hlsl
index 66db7ff..ee1d957 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000018E245E0610(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.fxc.hlsl
index 5e5a868..ee1d957 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000234598D4A60(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.fxc.hlsl
index 43b833c..ba83be1 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 3, 3> m_1 = matrix<float16_t, 3, 3>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000020E313B2780(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.fxc.hlsl
index afe0f11..ee1d957 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000023EB85117F0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.fxc.hlsl
index 8d00894..ee1d957 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000023F51A63530(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.fxc.hlsl
index 467728e..5895271 100644
--- a/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.fxc.hlsl
@@ -9,7 +9,3 @@
   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);
   const matrix<float16_t, 3, 3> m_1 = matrix<float16_t, 3, 3>(m);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001DD9A7165C0(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001DD9A7165C0(8,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.fxc.hlsl
index 052fa4e..a618943 100644
--- a/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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);
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000024FC77C3040(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.fxc.hlsl
index cd87376..0791b2e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 3, 4> m_1 = matrix<float16_t, 3, 4>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001E9C71C1A50(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.fxc.hlsl
index b1190d1..97fccc1 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001B600294B90(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.fxc.hlsl
index f90763b..97fccc1 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002007DCE3350(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.fxc.hlsl
index 3c22fd7..0791b2e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 3, 4> m_1 = matrix<float16_t, 3, 4>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000025B6F661A50(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.fxc.hlsl
index 67b9425..97fccc1 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000024D56723D80(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.fxc.hlsl
index 48da025..97fccc1 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000241D6B23CE0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.fxc.hlsl
index dc746bf..0381851 100644
--- a/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.fxc.hlsl
@@ -9,7 +9,3 @@
   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);
   const matrix<float16_t, 3, 4> m_1 = matrix<float16_t, 3, 4>(m);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001AE930269D0(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001AE930269D0(8,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.fxc.hlsl
index 31c249b..8df74ee 100644
--- a/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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);
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000020DF1435780(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.fxc.hlsl
index 9f40df7..040984a 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 4, 2> m_1 = matrix<float16_t, 4, 2>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000029979253250(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.fxc.hlsl
index c697dc9..b6f8540 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000026AE4660720(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.fxc.hlsl
index 097db2a..b6f8540 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000157ECB54590(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.fxc.hlsl
index 7695ffe..040984a 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 4, 2> m_1 = matrix<float16_t, 4, 2>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001AC29EA1B60(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.fxc.hlsl
index 224d6e3..b6f8540 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001F5E91C1A90(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.fxc.hlsl
index 49a45a9..b6f8540 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000002612CA849E0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.fxc.hlsl
index 039096d..6429ca0 100644
--- a/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.fxc.hlsl
@@ -9,7 +9,3 @@
   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);
   const matrix<float16_t, 4, 2> m_1 = matrix<float16_t, 4, 2>(m);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000029684918660(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000029684918660(8,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.fxc.hlsl
index 06f7c19..b812002 100644
--- a/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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);
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000021E1FA32CE0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.fxc.hlsl
index af6180e..b00229e 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 4, 3> m_1 = matrix<float16_t, 4, 3>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000027A67D14860(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.fxc.hlsl
index b275abc..7e5aa83 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000020AAA862BF0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.fxc.hlsl
index f916e83..7e5aa83 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001FC8B0B3B50(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.fxc.hlsl
index de8810c..b00229e 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 4, 3> m_1 = matrix<float16_t, 4, 3>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001F62FD73DD0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.fxc.hlsl
index 5e6e0a6..7e5aa83 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001952AFE1CC0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.fxc.hlsl
index 079a820..7e5aa83 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000022E236833F0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.fxc.hlsl
index 665574d..cf0aa2c 100644
--- a/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.fxc.hlsl
@@ -9,7 +9,3 @@
   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);
   const matrix<float16_t, 4, 3> m_1 = matrix<float16_t, 4, 3>(m);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000234940E69F0(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000234940E69F0(8,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.fxc.hlsl
index 52810cf..819bef3 100644
--- a/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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);
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001DD79FA20D0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.fxc.hlsl
index a44fb83..d144fd9 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 4, 4> m_1 = matrix<float16_t, 4, 4>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000288ADE91440(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.fxc.hlsl
index de235ce..197e408 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000021418B60EF0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.fxc.hlsl
index 8c4193c..197e408 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000263A6DB3030(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.fxc.hlsl
index c491101..d144fd9 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.fxc.hlsl
@@ -11,6 +11,3 @@
   const matrix<float16_t, 4, 4> m_1 = matrix<float16_t, 4, 4>(m);
   return m_1;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000019A49281440(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.fxc.hlsl
index 872d95e..197e408 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000020995B43790(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.fxc.hlsl
index 8772700..197e408 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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)));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000024092DA38D0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.fxc.hlsl
index 31b976c..e087223 100644
--- a/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.fxc.hlsl
@@ -9,7 +9,3 @@
   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);
   const matrix<float16_t, 4, 4> m_1 = matrix<float16_t, 4, 4>(m);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000016C5A9809A0(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000016C5A9809A0(8,16-24): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.fxc.hlsl
index 2bc3cdf..9b27b6a 100644
--- a/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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);
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000277C3AD2D20(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.fxc.hlsl
index fbee362..3b21542 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 2> v = vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000164D3022BF0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.fxc.hlsl
index b1147c3..3b21542 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 2> v = vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000218D6124C10(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.fxc.hlsl
index c154104..4d1b912 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 3> v = vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000013667CF29C0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.fxc.hlsl
index b054a69..4d1b912 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 static vector<float16_t, 3> v = vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000025E9B6B7060(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.fxc.hlsl
index daae81c..6eae794 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001D7941D2A60(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.fxc.hlsl
index efef6b8..6eae794 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.fxc.hlsl
@@ -6,6 +6,3 @@
 }
 
 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));
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000028825FD4A00(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/zero_init/array/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/zero_init/array/f16.wgsl.expected.fxc.hlsl
index 8c261d4..1c44d18 100644
--- a/test/tint/expressions/zero_init/array/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/zero_init/array/f16.wgsl.expected.fxc.hlsl
@@ -8,7 +8,3 @@
 void f() {
   float16_t v[4] = (float16_t[4])0;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001C7D06B43D0(7,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001C7D06B43D0(7,13): error X3000: unrecognized identifier 'v'
-
diff --git a/test/tint/expressions/zero_init/mat2x2/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/zero_init/mat2x2/f16.wgsl.expected.fxc.hlsl
index e5f7bb9..6a5e9af 100644
--- a/test/tint/expressions/zero_init/mat2x2/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat2x2/f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
 void f() {
   matrix<float16_t, 2, 2> v = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000026AC08B2AA0(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/zero_init/mat2x3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/zero_init/mat2x3/f16.wgsl.expected.fxc.hlsl
index c2fa29e..d04d09d 100644
--- a/test/tint/expressions/zero_init/mat2x3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat2x3/f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
 void f() {
   matrix<float16_t, 2, 3> v = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001F989322760(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/zero_init/mat2x4/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/zero_init/mat2x4/f16.wgsl.expected.fxc.hlsl
index 11cd97c..431ef8e 100644
--- a/test/tint/expressions/zero_init/mat2x4/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat2x4/f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
 void f() {
   matrix<float16_t, 2, 4> v = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000216FF5427E0(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/zero_init/mat3x2/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/zero_init/mat3x2/f16.wgsl.expected.fxc.hlsl
index 05e0405..22a7119 100644
--- a/test/tint/expressions/zero_init/mat3x2/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat3x2/f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
 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);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000027C22166760(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/zero_init/mat3x3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/zero_init/mat3x3/f16.wgsl.expected.fxc.hlsl
index 7602999..619fb07 100644
--- a/test/tint/expressions/zero_init/mat3x3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat3x3/f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
 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);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000021D6A972A90(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/zero_init/mat3x4/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/zero_init/mat3x4/f16.wgsl.expected.fxc.hlsl
index 44961fc..6a0e669 100644
--- a/test/tint/expressions/zero_init/mat3x4/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat3x4/f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
 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);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001FC83E62640(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/zero_init/mat4x2/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/zero_init/mat4x2/f16.wgsl.expected.fxc.hlsl
index 273a3fc..bc445b6 100644
--- a/test/tint/expressions/zero_init/mat4x2/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat4x2/f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
 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);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000021A5C7026F0(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/zero_init/mat4x3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/zero_init/mat4x3/f16.wgsl.expected.fxc.hlsl
index 419dd8d..c90fe14 100644
--- a/test/tint/expressions/zero_init/mat4x3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat4x3/f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
 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);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000261642D2630(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/zero_init/mat4x4/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/zero_init/mat4x4/f16.wgsl.expected.fxc.hlsl
index 3628197fd..60b4256 100644
--- a/test/tint/expressions/zero_init/mat4x4/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat4x4/f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
 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);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001B8769B2170(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/zero_init/scalar/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/zero_init/scalar/f16.wgsl.expected.fxc.hlsl
index 0890636..5de9529 100644
--- a/test/tint/expressions/zero_init/scalar/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/zero_init/scalar/f16.wgsl.expected.fxc.hlsl
@@ -8,7 +8,3 @@
 void f() {
   float16_t v = float16_t(0.0h);
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000026A4CFF2ED0(7,3-11): error X3000: unrecognized identifier 'float16_t'
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000026A4CFF2ED0(7,13): error X3000: unrecognized identifier 'v'
-
diff --git a/test/tint/expressions/zero_init/vec2/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/zero_init/vec2/f16.wgsl.expected.fxc.hlsl
index 086c082..8ba295a 100644
--- a/test/tint/expressions/zero_init/vec2/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec2/f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
 void f() {
   vector<float16_t, 2> v = (float16_t(0.0h)).xx;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x000001584E715AC0(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/zero_init/vec3/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/zero_init/vec3/f16.wgsl.expected.fxc.hlsl
index f1cb056..dc53989 100644
--- a/test/tint/expressions/zero_init/vec3/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec3/f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
 void f() {
   vector<float16_t, 3> v = (float16_t(0.0h)).xxx;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x00000178F2A23920(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/expressions/zero_init/vec4/f16.wgsl.expected.fxc.hlsl b/test/tint/expressions/zero_init/vec4/f16.wgsl.expected.fxc.hlsl
index 22ad739..193c339 100644
--- a/test/tint/expressions/zero_init/vec4/f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec4/f16.wgsl.expected.fxc.hlsl
@@ -8,6 +8,3 @@
 void f() {
   vector<float16_t, 4> v = (float16_t(0.0h)).xxxx;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\expressions\Shader@0x0000025C4B7127F0(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.fxc.hlsl b/test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.fxc.hlsl
index faa74b5..50e64a3 100644
--- a/test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.fxc.hlsl
@@ -22,6 +22,3 @@
   main_inner(tint_symbol.loc0, tint_symbol.loc1, tint_symbol.loc2, tint_symbol.loc3, tint_symbol.loc4, tint_symbol.loc5);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\shader_io\Shader@0x0000020BD1D24AC0(6,3-11): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.fxc.hlsl b/test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.fxc.hlsl
index d3aa003..f12683a 100644
--- a/test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.fxc.hlsl
@@ -31,6 +31,3 @@
   main_inner(tint_symbol_2);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\shader_io\Shader@0x000001A7231510D0(6,3-11): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.fxc.hlsl b/test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.fxc.hlsl
index e1f2d63..2743a24 100644
--- a/test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.fxc.hlsl
@@ -41,6 +41,3 @@
   main_inner(tint_symbol_2, tint_symbol.front_facing, tint_symbol.loc1, tint_symbol.sample_index, tint_symbol_3, tint_symbol.loc2, tint_symbol.loc4);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\shader_io\Shader@0x000001E6355E01A0(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.fxc.hlsl b/test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.fxc.hlsl
index 6172c1c..434d10c 100644
--- a/test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.fxc.hlsl
@@ -89,6 +89,3 @@
   wrapper_result_5.value = inner_result_5;
   return wrapper_result_5;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\shader_io\Shader@0x0000023E506E30B0(62,3-11): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.fxc.hlsl b/test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.fxc.hlsl
index 29537be..2190c4b 100644
--- a/test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.fxc.hlsl
@@ -33,6 +33,3 @@
   wrapper_result.loc5 = inner_result.loc5;
   return wrapper_result;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\shader_io\Shader@0x00000289AB322DE0(6,3-11): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.fxc.hlsl b/test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.fxc.hlsl
index 0c99d7f..94e7e05 100644
--- a/test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.fxc.hlsl
@@ -39,6 +39,3 @@
   wrapper_result.loc5 = inner_result.loc5;
   return wrapper_result;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\shader_io\Shader@0x000002135B880A00(8,3-11): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.fxc.hlsl b/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.fxc.hlsl
index b91e9d2..f435d11e 100644
--- a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.fxc.hlsl
@@ -41,6 +41,3 @@
   frag_main_inner(tint_symbol_4);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\shader_io\Shader@0x0000019F5A370630(3,3-11): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.fxc.hlsl b/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.fxc.hlsl
index 10c2dfe..a4f483b 100644
--- a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.fxc.hlsl
@@ -18,12 +18,12 @@
   float4 v : SV_Position;
 };
 
-void tint_symbol_2(RWByteAddressBuffer buffer, uint offset, S value) {
-  buffer.Store((offset + 0u), asuint(value.f));
-  buffer.Store((offset + 4u), asuint(value.u));
-  buffer.Store4((offset + 128u), asuint(value.v));
-  buffer.Store<float16_t>((offset + 160u), value.x);
-  buffer.Store<vector<float16_t, 3> >((offset + 192u), value.y);
+void output_store(uint offset, S value) {
+  output.Store((offset + 0u), asuint(value.f));
+  output.Store((offset + 4u), asuint(value.u));
+  output.Store4((offset + 128u), asuint(value.v));
+  output.Store<float16_t>((offset + 160u), value.x);
+  output.Store<vector<float16_t, 3> >((offset + 192u), value.y);
 }
 
 void frag_main_inner(S input) {
@@ -32,14 +32,11 @@
   const float4 v = input.v;
   const float16_t x = input.x;
   const vector<float16_t, 3> y = input.y;
-  tint_symbol_2(output, 0u, input);
+  output_store(0u, input);
 }
 
 void frag_main(tint_symbol_1 tint_symbol) {
-  const S tint_symbol_8 = {tint_symbol.f, tint_symbol.u, tint_symbol.v, tint_symbol.x, tint_symbol.y};
-  frag_main_inner(tint_symbol_8);
+  const S tint_symbol_2 = {tint_symbol.f, tint_symbol.u, tint_symbol.v, tint_symbol.x, tint_symbol.y};
+  frag_main_inner(tint_symbol_2);
   return;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\shader_io\Shader@0x00000223CE4E5B80(5,3-11): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.fxc.hlsl b/test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.fxc.hlsl
index 622d2fb..e4c8ace 100644
--- a/test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.fxc.hlsl
@@ -28,6 +28,3 @@
   wrapper_result.value = inner_result;
   return wrapper_result;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\shader_io\Shader@0x0000016E3C1012A0(6,3-11): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.fxc.hlsl b/test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.fxc.hlsl
index fcb2564..3425f1a 100644
--- a/test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.fxc.hlsl
@@ -37,6 +37,3 @@
   wrapper_result.value = inner_result;
   return wrapper_result;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\shader_io\Shader@0x0000014EC0050950(6,3-11): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.fxc.hlsl b/test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.fxc.hlsl
index d5ef1cf..bc03ac4 100644
--- a/test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.fxc.hlsl
@@ -42,6 +42,3 @@
   wrapper_result.value = inner_result;
   return wrapper_result;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\shader_io\Shader@0x0000026E46098A20(8,10-18): error X3000: syntax error: unexpected token 'float16_t'
-
diff --git a/test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.fxc.hlsl b/test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.fxc.hlsl
index 8d3722d..d93dd2c 100644
--- a/test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.fxc.hlsl
+++ b/test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.fxc.hlsl
@@ -36,6 +36,3 @@
   wrapper_result.loc5 = inner_result.loc5;
   return wrapper_result;
 }
-FXC validation failure:
-D:\Projects\RampUp\dawn\test\tint\shader_io\Shader@0x000002CD4C6B4280(7,3-11): error X3000: unrecognized identifier 'float16_t'
-
diff --git a/test/tint/types/texture/storage/1d.wgsl.expected.glsl b/test/tint/types/texture/storage/1d.wgsl.expected.glsl
index dbca2af..124451a 100644
--- a/test/tint/types/texture/storage/1d.wgsl.expected.glsl
+++ b/test/tint/types/texture/storage/1d.wgsl.expected.glsl
@@ -28,7 +28,7 @@
 }
 Error parsing GLSL shader:
 ERROR: 0:13: 'image load-store format' : not supported with this profile: es
-ERROR: 0:13: '' : compilation terminated
+ERROR: 0:13: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.dxc.hlsl
index da35133..b406c6a 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.dxc.hlsl
@@ -3,8 +3,9 @@
 static uint var_1 = 0u;
 
 void main_1() {
-  {
-    for(; !(false); ) {
+  while (true) {
+    if (false) {
+      break;
     }
   }
   return;
@@ -15,10 +16,10 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
-shader.hlsl:11: error: Loop must have break.
+shader.hlsl:12: error: Loop must have break.
 Validation failed.
 
 
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.dxc.hlsl
index e18de7a..b406c6a 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.dxc.hlsl
@@ -16,7 +16,7 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
 shader.hlsl:12: error: Loop must have break.
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.dxc.hlsl
index aaf880c..a8c1f7f 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.dxc.hlsl
@@ -7,9 +7,7 @@
   while (true) {
     var_1 = 1u;
     {
-      if (false) {
-        break;
-      }
+      if (false) { break; }
     }
   }
   var_1 = 5u;
@@ -21,10 +19,10 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
-shader.hlsl:17: error: Loop must have break.
+shader.hlsl:15: error: Loop must have break.
 Validation failed.
 
 
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.fxc.hlsl
index 953b9b9..46dcb3d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.fxc.hlsl
@@ -7,9 +7,7 @@
   while (true) {
     var_1 = 1u;
     {
-      if (false) {
-        break;
-      }
+      if (false) { break; }
     }
   }
   var_1 = 5u;
@@ -20,6 +18,3 @@
   main_1();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000002368B5C30E0(5,17-20): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.dxc.hlsl
index 0edb350..8dba16c 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.dxc.hlsl
@@ -19,7 +19,7 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
 shader.hlsl:15: error: Loop must have break.
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.fxc.hlsl
index f6c6dd4..c7b40eb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.fxc.hlsl
@@ -18,6 +18,3 @@
   main_1();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x0000022316E83810(5,17-20): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.dxc.hlsl
index b6ca23e..0e85a75 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.dxc.hlsl
@@ -31,7 +31,7 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
 shader.hlsl:27: error: Loop must have break.
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.fxc.hlsl
index 3480e0f..cd036c6 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.fxc.hlsl
@@ -30,6 +30,3 @@
   main_1();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x0000014CDFA08540(5,17-20): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.dxc.hlsl
index 2f7a9e7..b99754a 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.dxc.hlsl
@@ -24,7 +24,7 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
 shader.hlsl:20: error: Loop must have break.
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.fxc.hlsl
index ed66a88..2008cf6 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.fxc.hlsl
@@ -23,6 +23,3 @@
   main_1();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000001D02A987360(5,17-20): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.dxc.hlsl
index e18de7a..b406c6a 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.dxc.hlsl
@@ -16,7 +16,7 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
 shader.hlsl:12: error: Loop must have break.
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.dxc.hlsl
index db7a9f5..fe9cd64 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.dxc.hlsl
@@ -20,7 +20,7 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
 shader.hlsl:16: error: Loop must have break.
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.fxc.hlsl
index e241608..6a8669f 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.fxc.hlsl
@@ -19,6 +19,3 @@
   main_1();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000002E640B78D60(4,17-20): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.dxc.hlsl
index 8c87c9f..ea1f61c 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.dxc.hlsl
@@ -21,7 +21,7 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
 shader.hlsl:17: error: Loop must have break.
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.fxc.hlsl
index bfa6e0e..e86a2d8 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.fxc.hlsl
@@ -20,6 +20,3 @@
   main_1();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x0000027D4D5AB130(4,17-20): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.dxc.hlsl
index d28f8d3..5315678 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.dxc.hlsl
@@ -19,7 +19,7 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
 shader.hlsl:15: error: Loop must have break.
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.fxc.hlsl
index 963b2ff..e982c17 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.fxc.hlsl
@@ -18,6 +18,3 @@
   main_1();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000002B299653E40(5,17-20): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.dxc.hlsl
index e18de7a..b406c6a 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.dxc.hlsl
@@ -16,7 +16,7 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
 shader.hlsl:12: error: Loop must have break.
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.dxc.hlsl
index f830b57..e924932 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.dxc.hlsl
@@ -12,16 +12,14 @@
     }
     x_1 = 3u;
     if (true) {
-      x_2 = (1u + 1u);
+      x_2 = 2u;
     } else {
       return;
     }
     x_1 = x_2;
     {
       x_1 = 4u;
-      if (false) {
-        break;
-      }
+      if (false) { break; }
     }
   }
   x_1 = 5u;
@@ -33,10 +31,10 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
-shader.hlsl:29: error: Loop must have break.
+shader.hlsl:27: error: Loop must have break.
 Validation failed.
 
 
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.fxc.hlsl
index b151259..f81ef24 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.fxc.hlsl
@@ -19,9 +19,7 @@
     x_1 = x_2;
     {
       x_1 = 4u;
-      if (false) {
-        break;
-      }
+      if (false) { break; }
     }
   }
   x_1 = 5u;
@@ -32,6 +30,3 @@
   main_1();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x00000292BFA3C190(5,17-20): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.dxc.hlsl
index 133f212..fbd0205 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.dxc.hlsl
@@ -8,25 +8,25 @@
   const bool x_101 = x_7;
   const bool x_102 = x_8;
   while (true) {
-    uint x_2_phi = 0u;
+    uint x_2 = 0u;
     if (x_101) {
       break;
     }
     if (x_102) {
-      x_2_phi = 0u;
+      x_2 = 0u;
       {
-        x_1 = x_2_phi;
+        x_1 = x_2;
       }
       continue;
     } else {
-      x_2_phi = 1u;
+      x_2 = 1u;
       {
-        x_1 = x_2_phi;
+        x_1 = x_2;
       }
       continue;
     }
     {
-      x_1 = x_2_phi;
+      x_1 = x_2;
     }
   }
   return;
@@ -37,7 +37,7 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
 shader.hlsl:33: error: Loop must have break.
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.fxc.hlsl
index f55271e..e81e985 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.fxc.hlsl
@@ -8,25 +8,25 @@
   const bool x_101 = x_7;
   const bool x_102 = x_8;
   while (true) {
-    uint x_2_phi = 0u;
+    uint x_2 = 0u;
     if (x_101) {
       break;
     }
     if (x_102) {
-      x_2_phi = 0u;
+      x_2 = 0u;
       {
-        x_1 = x_2_phi;
+        x_1 = x_2;
       }
       continue;
     } else {
-      x_2_phi = 1u;
+      x_2 = 1u;
       {
-        x_1 = x_2_phi;
+        x_1 = x_2;
       }
       continue;
     }
     {
-      x_1 = x_2_phi;
+      x_1 = x_2;
     }
   }
   return;
@@ -36,6 +36,3 @@
   main_1();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x0000025B50880850(8,17-20): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.dxc.hlsl
index a0a28cc..d7adb1e 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.dxc.hlsl
@@ -8,25 +8,25 @@
   const bool x_101 = x_7;
   const bool x_102 = x_8;
   while (true) {
-    uint x_2_phi = 0u;
+    uint x_2 = 0u;
     if (x_101) {
       break;
     }
-    x_2_phi = 0u;
+    x_2 = 0u;
     if (x_102) {
-      x_2_phi = 1u;
+      x_2 = 1u;
       {
-        x_1 = x_2_phi;
+        x_1 = x_2;
       }
       continue;
     } else {
       {
-        x_1 = x_2_phi;
+        x_1 = x_2;
       }
       continue;
     }
     {
-      x_1 = x_2_phi;
+      x_1 = x_2;
     }
   }
   return;
@@ -37,7 +37,7 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
 shader.hlsl:33: error: Loop must have break.
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.fxc.hlsl
index fe57dfe..70a7e88 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.fxc.hlsl
@@ -8,25 +8,25 @@
   const bool x_101 = x_7;
   const bool x_102 = x_8;
   while (true) {
-    uint x_2_phi = 0u;
+    uint x_2 = 0u;
     if (x_101) {
       break;
     }
-    x_2_phi = 0u;
+    x_2 = 0u;
     if (x_102) {
-      x_2_phi = 1u;
+      x_2 = 1u;
       {
-        x_1 = x_2_phi;
+        x_1 = x_2;
       }
       continue;
     } else {
       {
-        x_1 = x_2_phi;
+        x_1 = x_2;
       }
       continue;
     }
     {
-      x_1 = x_2_phi;
+      x_1 = x_2;
     }
   }
   return;
@@ -36,6 +36,3 @@
   main_1();
   return;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x0000025611B16C90(8,17-20): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.dxc.hlsl
index 43fbc79..78365ea 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.dxc.hlsl
@@ -6,26 +6,25 @@
 
 void main_1() {
   while (true) {
-    uint x_2_phi = 0u;
-    uint x_3_phi = 0u;
+    uint x_2 = 0u;
+    uint x_3 = 0u;
     const bool x_101 = x_7;
     const bool x_102 = x_8;
-    x_2_phi = 0u;
-    x_3_phi = 1u;
+    x_2 = 0u;
+    x_3 = 1u;
     if (x_101) {
       break;
     }
     while (true) {
       uint x_4 = 0u;
-      const uint x_2 = x_2_phi;
-      const uint x_3 = x_3_phi;
       if (x_102) {
         break;
       }
       {
         x_4 = (x_2 + 1u);
-        x_2_phi = x_4;
-        x_3_phi = x_3;
+        const uint x_3_c30 = x_3;
+        x_2 = x_4;
+        x_3 = x_3_c30;
       }
     }
   }
@@ -37,10 +36,10 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
-shader.hlsl:33: error: Loop must have break.
+shader.hlsl:32: error: Loop must have break.
 Validation failed.
 
 
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.dxc.hlsl
index 2f0c12c..2b52fe6 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.dxc.hlsl
@@ -6,19 +6,19 @@
 
 void main_1() {
   while (true) {
-    uint x_2_phi = 0u;
-    uint x_3_phi = 0u;
+    uint x_2 = 0u;
+    uint x_3 = 0u;
     const bool x_101 = x_7;
     const bool x_102 = x_8;
-    x_2_phi = 0u;
-    x_3_phi = 1u;
+    x_2 = 0u;
+    x_3 = 1u;
     if (x_101) {
       break;
     }
     while (true) {
-      const uint x_3 = x_3_phi;
-      x_2_phi = (x_2_phi + 1u);
-      x_3_phi = x_3;
+      const uint x_3_c20 = x_3;
+      x_2 = (x_2 + 1u);
+      x_3 = x_3_c20;
       if (x_102) {
         break;
       }
@@ -32,7 +32,7 @@
   return;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
 shader.hlsl:28: error: Loop must have break.
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.fxc.hlsl
index 582837a..7264b85 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.fxc.hlsl
@@ -1,3 +1,105 @@
 SKIP: FAILED
 
-exit status 0xc00000fd
\ No newline at end of file
+int tint_clamp(int e, int low, int high) {
+  return min(max(e, low), high);
+}
+
+cbuffer cbuffer_x_7 : register(b0, space0) {
+  uint4 x_7[1];
+};
+cbuffer cbuffer_x_10 : register(b1, space0) {
+  uint4 x_10[4];
+};
+static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
+static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
+
+void main_1() {
+  float4 data[2] = (float4[2])0;
+  int b = 0;
+  int y = 0;
+  int i = 0;
+  const float x_42 = asfloat(x_7[0].x);
+  const float x_45 = asfloat(x_7[0].x);
+  const float4 tint_symbol_5[2] = {float4(x_42, x_42, x_42, x_42), float4(x_45, x_45, x_45, x_45)};
+  data = tint_symbol_5;
+  const int x_49 = asint(x_10[1].x);
+  b = x_49;
+  const float x_51 = gl_FragCoord.y;
+  const int x_54 = asint(x_10[1].x);
+  const float x_56 = gl_FragCoord.y;
+  const int x_60 = asint(x_10[1].x);
+  y = tint_clamp(int(x_51), (x_54 | int(x_56)), x_60);
+  const int x_63 = asint(x_10[1].x);
+  i = x_63;
+  while (true) {
+    bool x_82 = false;
+    bool x_83 = false;
+    const int x_68 = i;
+    const int x_70 = asint(x_10[0].x);
+    if ((x_68 < x_70)) {
+    } else {
+      break;
+    }
+    const int x_73 = b;
+    const int x_75 = asint(x_10[0].x);
+    const bool x_76 = (x_73 > x_75);
+    x_83 = x_76;
+    if (x_76) {
+      const int x_79 = y;
+      const int x_81 = asint(x_10[1].x);
+      x_82 = (x_79 > x_81);
+      x_83 = x_82;
+    }
+    if (x_83) {
+      break;
+    }
+    const int x_86 = b;
+    b = (x_86 + 1);
+    {
+      const int x_88 = i;
+      i = (x_88 + 1);
+    }
+  }
+  const int x_90 = b;
+  const int x_92 = asint(x_10[0].x);
+  if ((x_90 == x_92)) {
+    const int x_97 = asint(x_10[2].x);
+    const int x_99 = asint(x_10[1].x);
+    const int x_101 = asint(x_10[3].x);
+    const int x_104 = asint(x_10[1].x);
+    const int x_107 = asint(x_10[2].x);
+    const int x_110 = asint(x_10[2].x);
+    const int x_113 = asint(x_10[1].x);
+    const float4 tint_symbol_3 = float4(float(x_104), float(x_107), float(x_110), float(x_113));
+    const int tint_symbol_4 = tint_clamp(x_97, x_99, x_101);
+    data[tint_symbol_4] = tint_symbol_3;
+  }
+  const int x_118 = asint(x_10[1].x);
+  const float4 x_120 = data[x_118];
+  x_GLF_color = float4(x_120.x, x_120.y, x_120.z, x_120.w);
+  return;
+}
+
+struct main_out {
+  float4 x_GLF_color_1;
+};
+struct tint_symbol_1 {
+  float4 gl_FragCoord_param : SV_Position;
+};
+struct tint_symbol_2 {
+  float4 x_GLF_color_1 : SV_Target0;
+};
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  const main_out tint_symbol_6 = {x_GLF_color};
+  return tint_symbol_6;
+}
+
+tint_symbol_2 main(tint_symbol_1 tint_symbol) {
+  const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
+  tint_symbol_2 wrapper_result = (tint_symbol_2)0;
+  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
+  return wrapper_result;
+}
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.fxc.hlsl
index 582837a..c593321 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.fxc.hlsl
@@ -1,3 +1,106 @@
 SKIP: FAILED
 
-exit status 0xc00000fd
\ No newline at end of file
+int tint_clamp(int e, int low, int high) {
+  return min(max(e, low), high);
+}
+
+cbuffer cbuffer_x_7 : register(b0, space0) {
+  uint4 x_7[1];
+};
+cbuffer cbuffer_x_10 : register(b1, space0) {
+  uint4 x_10[4];
+};
+static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
+static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
+
+void main_1() {
+  float4 data[2] = (float4[2])0;
+  int b = 0;
+  int y = 0;
+  int i = 0;
+  const float x_42 = asfloat(x_7[0].x);
+  const float x_45 = asfloat(x_7[0].x);
+  const float4 tint_symbol_5[2] = {float4(x_42, x_42, x_42, x_42), float4(x_45, x_45, x_45, x_45)};
+  data = tint_symbol_5;
+  const int x_49 = asint(x_10[1].x);
+  b = x_49;
+  const float x_51 = gl_FragCoord.y;
+  const int x_54 = asint(x_10[1].x);
+  const float x_56 = gl_FragCoord.y;
+  const int x_60 = asint(x_10[1].x);
+  y = tint_clamp(int(x_51), (x_54 | int(x_56)), x_60);
+  const int x_63 = asint(x_10[1].x);
+  i = x_63;
+  while (true) {
+    bool x_82 = false;
+    bool x_83_phi = false;
+    const int x_68 = i;
+    const int x_70 = asint(x_10[0].x);
+    if ((x_68 < x_70)) {
+    } else {
+      break;
+    }
+    const int x_73 = b;
+    const int x_75 = asint(x_10[0].x);
+    const bool x_76 = (x_73 > x_75);
+    x_83_phi = x_76;
+    if (x_76) {
+      const int x_79 = y;
+      const int x_81 = asint(x_10[1].x);
+      x_82 = (x_79 > x_81);
+      x_83_phi = x_82;
+    }
+    const bool x_83 = x_83_phi;
+    if (x_83) {
+      break;
+    }
+    const int x_86 = b;
+    b = (x_86 + 1);
+    {
+      const int x_88 = i;
+      i = (x_88 + 1);
+    }
+  }
+  const int x_90 = b;
+  const int x_92 = asint(x_10[0].x);
+  if ((x_90 == x_92)) {
+    const int x_97 = asint(x_10[2].x);
+    const int x_99 = asint(x_10[1].x);
+    const int x_101 = asint(x_10[3].x);
+    const int x_104 = asint(x_10[1].x);
+    const int x_107 = asint(x_10[2].x);
+    const int x_110 = asint(x_10[2].x);
+    const int x_113 = asint(x_10[1].x);
+    const float4 tint_symbol_3 = float4(float(x_104), float(x_107), float(x_110), float(x_113));
+    const int tint_symbol_4 = tint_clamp(x_97, x_99, x_101);
+    data[tint_symbol_4] = tint_symbol_3;
+  }
+  const int x_118 = asint(x_10[1].x);
+  const float4 x_120 = data[x_118];
+  x_GLF_color = float4(x_120.x, x_120.y, x_120.z, x_120.w);
+  return;
+}
+
+struct main_out {
+  float4 x_GLF_color_1;
+};
+struct tint_symbol_1 {
+  float4 gl_FragCoord_param : SV_Position;
+};
+struct tint_symbol_2 {
+  float4 x_GLF_color_1 : SV_Target0;
+};
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  const main_out tint_symbol_6 = {x_GLF_color};
+  return tint_symbol_6;
+}
+
+tint_symbol_2 main(tint_symbol_1 tint_symbol) {
+  const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
+  tint_symbol_2 wrapper_result = (tint_symbol_2)0;
+  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
+  return wrapper_result;
+}
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.fxc.hlsl
index da08501..444ce4d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.fxc.hlsl
@@ -1,4 +1,4 @@
-SKIP: FAILED - crbug.com/tint/1375
+SKIP: FAILED
 
 void set_scalar_float2x3(inout float2x3 mat, int col, int row, float val) {
   switch (col) {
@@ -447,36 +447,33 @@
                                                                                 x_GLF_global_loop_count = (x_371 + 1);
                                                                                 {
                                                                                   const int x_373 = x_GLF_global_loop_count;
-                                                                                  if ((x_373 < 98)) {
-                                                                                  } else {
-                                                                                    break;
-                                                                                  }
+                                                                                  if (!((x_373 < 98))) { break; }
                                                                                 }
                                                                               }
                                                                               const int x_375 = i_37;
                                                                               const int x_376 = i_37;
-                                                                              set_scalar_float2x3(m23, x_376, x_375, 1.0f);
+                                                                              set_scalar_float2x3(m23, x_375, x_376, 1.0f);
                                                                               const int x_378 = i_37;
                                                                               const int x_379 = i_37;
-                                                                              set_scalar_float2x4(m24, x_379, x_378, 1.0f);
+                                                                              set_scalar_float2x4(m24, x_378, x_379, 1.0f);
                                                                               const int x_381 = i_37;
                                                                               const int x_382 = i_37;
-                                                                              set_scalar_float3x2(m32, x_382, x_381, 1.0f);
+                                                                              set_scalar_float3x2(m32, x_381, x_382, 1.0f);
                                                                               const int x_384 = i_37;
                                                                               const int x_385 = i_37;
-                                                                              set_scalar_float3x3(m33, x_385, x_384, 1.0f);
+                                                                              set_scalar_float3x3(m33, x_384, x_385, 1.0f);
                                                                               const int x_387 = i_37;
                                                                               const int x_388 = i_37;
-                                                                              set_scalar_float3x4(m34, x_388, x_387, 1.0f);
+                                                                              set_scalar_float3x4(m34, x_387, x_388, 1.0f);
                                                                               const int x_390 = i_37;
                                                                               const int x_391 = i_37;
-                                                                              set_scalar_float4x2(m42, x_391, x_390, 1.0f);
+                                                                              set_scalar_float4x2(m42, x_390, x_391, 1.0f);
                                                                               const int x_393 = i_37;
                                                                               const int x_394 = i_37;
-                                                                              set_scalar_float4x3(m43, x_394, x_393, 1.0f);
+                                                                              set_scalar_float4x3(m43, x_393, x_394, 1.0f);
                                                                               const int x_396 = i_37;
                                                                               const int x_397 = i_37;
-                                                                              set_scalar_float4x4(m44, x_397, x_396, 1.0f);
+                                                                              set_scalar_float4x4(m44, x_396, x_397, 1.0f);
                                                                               {
                                                                                 const int x_399 = i_37;
                                                                                 i_37 = (x_399 + 1);
@@ -742,6 +739,3 @@
   wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
   return wrapper_result;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000001C31974FD40(409,76-87): error X3531: can't unroll loops marked with loop attribute
-
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.fxc.hlsl
index d4ffe83..444ce4d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.fxc.hlsl
@@ -1,4 +1,4 @@
-SKIP: FAILED - crbug.com/tint/1375
+SKIP: FAILED
 
 void set_scalar_float2x3(inout float2x3 mat, int col, int row, float val) {
   switch (col) {
@@ -447,36 +447,33 @@
                                                                                 x_GLF_global_loop_count = (x_371 + 1);
                                                                                 {
                                                                                   const int x_373 = x_GLF_global_loop_count;
-                                                                                  if ((x_373 < 98)) {
-                                                                                  } else {
-                                                                                    break;
-                                                                                  }
+                                                                                  if (!((x_373 < 98))) { break; }
                                                                                 }
                                                                               }
                                                                               const int x_375 = i_37;
                                                                               const int x_376 = i_37;
-                                                                              set_scalar_float2x3(m23, x_376, x_375, 1.0f);
+                                                                              set_scalar_float2x3(m23, x_375, x_376, 1.0f);
                                                                               const int x_378 = i_37;
                                                                               const int x_379 = i_37;
-                                                                              set_scalar_float2x4(m24, x_379, x_378, 1.0f);
+                                                                              set_scalar_float2x4(m24, x_378, x_379, 1.0f);
                                                                               const int x_381 = i_37;
                                                                               const int x_382 = i_37;
-                                                                              set_scalar_float3x2(m32, x_382, x_381, 1.0f);
+                                                                              set_scalar_float3x2(m32, x_381, x_382, 1.0f);
                                                                               const int x_384 = i_37;
                                                                               const int x_385 = i_37;
-                                                                              set_scalar_float3x3(m33, x_385, x_384, 1.0f);
+                                                                              set_scalar_float3x3(m33, x_384, x_385, 1.0f);
                                                                               const int x_387 = i_37;
                                                                               const int x_388 = i_37;
-                                                                              set_scalar_float3x4(m34, x_388, x_387, 1.0f);
+                                                                              set_scalar_float3x4(m34, x_387, x_388, 1.0f);
                                                                               const int x_390 = i_37;
                                                                               const int x_391 = i_37;
-                                                                              set_scalar_float4x2(m42, x_391, x_390, 1.0f);
+                                                                              set_scalar_float4x2(m42, x_390, x_391, 1.0f);
                                                                               const int x_393 = i_37;
                                                                               const int x_394 = i_37;
-                                                                              set_scalar_float4x3(m43, x_394, x_393, 1.0f);
+                                                                              set_scalar_float4x3(m43, x_393, x_394, 1.0f);
                                                                               const int x_396 = i_37;
                                                                               const int x_397 = i_37;
-                                                                              set_scalar_float4x4(m44, x_397, x_396, 1.0f);
+                                                                              set_scalar_float4x4(m44, x_396, x_397, 1.0f);
                                                                               {
                                                                                 const int x_399 = i_37;
                                                                                 i_37 = (x_399 + 1);
@@ -742,6 +739,3 @@
   wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
   return wrapper_result;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000001B05F850BC0(409,76-87): error X3531: can't unroll loops marked with loop attribute
-
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.fxc.hlsl
index f4f1e65..d3820c9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.fxc.hlsl
@@ -1,4 +1,4 @@
-SKIP: FAILED - TIMEOUT
+SKIP: FAILED
 
 static int x_GLF_global_loop_count = 0;
 cbuffer cbuffer_x_7 : register(b0, space0) {
@@ -33,117 +33,106 @@
   f = x_53;
   const int x_55 = asint(x_10[1].x);
   i = x_55;
-  [loop] while (true) {
+  while (true) {
     const int x_60 = i;
-    const uint scalar_offset = ((16u * 0u)) / 4;
-    const int x_62 = asint(x_10[scalar_offset / 4][scalar_offset % 4]);
+    const int x_62 = asint(x_10[0].x);
     if ((x_60 < x_62)) {
     } else {
       break;
     }
     const int x_66 = asint(x_10[1].x);
     i_1 = x_66;
-    [loop] while (true) {
+    while (true) {
       const int x_71 = i_1;
-      const uint scalar_offset_1 = ((16u * 0u)) / 4;
-      const int x_73 = asint(x_10[scalar_offset_1 / 4][scalar_offset_1 % 4]);
+      const int x_73 = asint(x_10[0].x);
       if ((x_71 < x_73)) {
       } else {
         break;
       }
       const int x_77 = asint(x_10[1].x);
       i_2 = x_77;
-      [loop] while (true) {
+      while (true) {
         const int x_82 = i_2;
-        const uint scalar_offset_2 = ((16u * 0u)) / 4;
-        const int x_84 = asint(x_10[scalar_offset_2 / 4][scalar_offset_2 % 4]);
+        const int x_84 = asint(x_10[0].x);
         if ((x_82 < x_84)) {
         } else {
           break;
         }
         const int x_88 = asint(x_10[1].x);
         i_3 = x_88;
-        [loop] while (true) {
+        while (true) {
           const int x_93 = i_3;
-          const uint scalar_offset_3 = ((16u * 0u)) / 4;
-          const int x_95 = asint(x_10[scalar_offset_3 / 4][scalar_offset_3 % 4]);
+          const int x_95 = asint(x_10[0].x);
           if ((x_93 < x_95)) {
           } else {
             break;
           }
           const int x_99 = asint(x_10[1].x);
           i_4 = x_99;
-          [loop] while (true) {
+          while (true) {
             const int x_104 = i_4;
-            const uint scalar_offset_4 = ((16u * 0u)) / 4;
-            const int x_106 = asint(x_10[scalar_offset_4 / 4][scalar_offset_4 % 4]);
+            const int x_106 = asint(x_10[0].x);
             if ((x_104 < x_106)) {
             } else {
               break;
             }
             const int x_110 = asint(x_10[1].x);
             i_5 = x_110;
-            [loop] while (true) {
+            while (true) {
               const int x_115 = i_5;
-              const uint scalar_offset_5 = ((16u * 0u)) / 4;
-              const int x_117 = asint(x_10[scalar_offset_5 / 4][scalar_offset_5 % 4]);
+              const int x_117 = asint(x_10[0].x);
               if ((x_115 < x_117)) {
               } else {
                 break;
               }
               const int x_121 = asint(x_10[1].x);
               i_6 = x_121;
-              [loop] while (true) {
+              while (true) {
                 const int x_126 = i_6;
-                const uint scalar_offset_6 = ((16u * 0u)) / 4;
-                const int x_128 = asint(x_10[scalar_offset_6 / 4][scalar_offset_6 % 4]);
+                const int x_128 = asint(x_10[0].x);
                 if ((x_126 < x_128)) {
                 } else {
                   break;
                 }
                 const int x_132 = asint(x_10[1].x);
                 i_7 = x_132;
-                [loop] while (true) {
+                while (true) {
                   const int x_137 = i_7;
-                  const uint scalar_offset_7 = ((16u * 0u)) / 4;
-                  const int x_139 = asint(x_10[scalar_offset_7 / 4][scalar_offset_7 % 4]);
+                  const int x_139 = asint(x_10[0].x);
                   if ((x_137 < x_139)) {
                   } else {
                     break;
                   }
                   const int x_143 = asint(x_10[1].x);
                   i_8 = x_143;
-                  [loop] while (true) {
+                  while (true) {
                     const int x_148 = i_8;
-                    const uint scalar_offset_8 = ((16u * 0u)) / 4;
-                    const int x_150 = asint(x_10[scalar_offset_8 / 4][scalar_offset_8 % 4]);
+                    const int x_150 = asint(x_10[0].x);
                     if ((x_148 < x_150)) {
                     } else {
                       break;
                     }
                     const int x_154 = asint(x_10[1].x);
                     i_9 = x_154;
-                    [loop] while (true) {
+                    while (true) {
                       const int x_159 = i_9;
-                      const uint scalar_offset_9 = ((16u * 0u)) / 4;
-                      const int x_161 = asint(x_10[scalar_offset_9 / 4][scalar_offset_9 % 4]);
+                      const int x_161 = asint(x_10[0].x);
                       if ((x_159 < x_161)) {
                       } else {
                         break;
                       }
                       const int x_165 = asint(x_10[1].x);
                       i_10 = x_165;
-                      [loop] while (true) {
+                      while (true) {
                         const int x_170 = i_10;
-                        const uint scalar_offset_10 = ((16u * 0u)) / 4;
-                        const int x_172 = asint(x_10[scalar_offset_10 / 4][scalar_offset_10 % 4]);
+                        const int x_172 = asint(x_10[0].x);
                         if ((x_170 < x_172)) {
                         } else {
                           break;
                         }
                         const int x_176 = asint(x_10[1].x);
                         i_11 = x_176;
-                        [loop] while (true) {
+                        while (true) {
                           const int x_181 = i_11;
                           const int x_183 = asint(x_10[2].x);
                           if ((x_181 < x_183)) {
@@ -152,126 +141,145 @@
                           }
                           const int x_187 = asint(x_10[1].x);
                           i_12 = x_187;
-                          [loop] while (true) {
+                          while (true) {
                             const int x_192 = i_12;
-                            const uint scalar_offset_11 = ((16u * 0u)) / 4;
-                            const int x_194 = asint(x_10[scalar_offset_11 / 4][scalar_offset_11 % 4]);
+                            const int x_194 = asint(x_10[0].x);
                             if ((x_192 < x_194)) {
                             } else {
                               break;
                             }
                             const int x_198 = asint(x_10[1].x);
                             i_13 = x_198;
-                            [loop] while (true) {
+                            while (true) {
                               const int x_203 = i_13;
-                              const uint scalar_offset_12 = ((16u * 0u)) / 4;
-                              const int x_205 = asint(x_10[scalar_offset_12 / 4][scalar_offset_12 % 4]);
+                              const int x_205 = asint(x_10[0].x);
                               if ((x_203 < x_205)) {
                               } else {
                                 break;
                               }
                               const int x_209 = asint(x_10[1].x);
                               i_14 = x_209;
-                              [loop] while (true) {
+                              while (true) {
                                 const int x_214 = i_14;
                                 const int x_216 = asint(x_10[2].x);
                                 if ((x_214 < x_216)) {
                                 } else {
                                   break;
                                 }
-                                [loop] while (true) {
-                                  x_GLF_global_loop_count = (x_GLF_global_loop_count + 1);
+                                while (true) {
+                                  const int x_223 = x_GLF_global_loop_count;
+                                  x_GLF_global_loop_count = (x_223 + 1);
                                   {
                                     const int x_225 = x_GLF_global_loop_count;
                                     const int x_227 = asint(x_10[3].x);
-                                    if ((x_225 < (100 - x_227))) {
-                                    } else {
-                                      break;
-                                    }
+                                    if (!((x_225 < (100 - x_227)))) { break; }
                                   }
                                 }
-                                const uint scalar_offset_13 = ((16u * 0u)) / 4;
-                                const float x_231 = asfloat(x_7[scalar_offset_13 / 4][scalar_offset_13 % 4]);
-                                f = (f + x_231);
+                                const float x_231 = asfloat(x_7[0].x);
+                                const float x_232 = f;
+                                f = (x_232 + x_231);
                                 {
-                                  i_14 = (i_14 + 1);
+                                  const int x_234 = i_14;
+                                  i_14 = (x_234 + 1);
                                 }
                               }
                               {
-                                i_13 = (i_13 + 1);
+                                const int x_236 = i_13;
+                                i_13 = (x_236 + 1);
                               }
                             }
                             {
-                              i_12 = (i_12 + 1);
+                              const int x_238 = i_12;
+                              i_12 = (x_238 + 1);
                             }
                           }
                           {
-                            i_11 = (i_11 + 1);
+                            const int x_240 = i_11;
+                            i_11 = (x_240 + 1);
                           }
                         }
                         {
-                          i_10 = (i_10 + 1);
+                          const int x_242 = i_10;
+                          i_10 = (x_242 + 1);
                         }
                       }
                       {
-                        i_9 = (i_9 + 1);
+                        const int x_244 = i_9;
+                        i_9 = (x_244 + 1);
                       }
                     }
                     {
-                      i_8 = (i_8 + 1);
+                      const int x_246 = i_8;
+                      i_8 = (x_246 + 1);
                     }
                   }
                   {
-                    i_7 = (i_7 + 1);
+                    const int x_248 = i_7;
+                    i_7 = (x_248 + 1);
                   }
                 }
                 {
-                  i_6 = (i_6 + 1);
+                  const int x_250 = i_6;
+                  i_6 = (x_250 + 1);
                 }
               }
               {
-                i_5 = (i_5 + 1);
+                const int x_252 = i_5;
+                i_5 = (x_252 + 1);
               }
             }
             {
-              i_4 = (i_4 + 1);
+              const int x_254 = i_4;
+              i_4 = (x_254 + 1);
             }
           }
           {
-            i_3 = (i_3 + 1);
+            const int x_256 = i_3;
+            i_3 = (x_256 + 1);
           }
         }
         {
-          i_2 = (i_2 + 1);
+          const int x_258 = i_2;
+          i_2 = (x_258 + 1);
         }
       }
       {
-        i_1 = (i_1 + 1);
+        const int x_260 = i_1;
+        i_1 = (x_260 + 1);
       }
     }
     {
-      i = (i + 1);
+      const int x_262 = i;
+      i = (x_262 + 1);
     }
   }
   const float x_265 = asfloat(x_7[1].x);
   sum = x_265;
   const int x_267 = asint(x_10[1].x);
   r = x_267;
-  {
-    [loop] for(; (x_GLF_global_loop_count < 100); r = (r + 1)) {
-      x_GLF_global_loop_count = (x_GLF_global_loop_count + 1);
-      sum = (sum + f);
+  while (true) {
+    const int x_272 = x_GLF_global_loop_count;
+    if ((x_272 < 100)) {
+    } else {
+      break;
+    }
+    const int x_275 = x_GLF_global_loop_count;
+    x_GLF_global_loop_count = (x_275 + 1);
+    const float x_277 = f;
+    const float x_278 = sum;
+    sum = (x_278 + x_277);
+    {
+      const int x_280 = r;
+      r = (x_280 + 1);
     }
   }
   const float x_282 = sum;
   const float x_284 = asfloat(x_7[2].x);
   if ((x_282 == x_284)) {
-    const uint scalar_offset_14 = ((16u * 0u)) / 4;
-    const int x_290 = asint(x_10[scalar_offset_14 / 4][scalar_offset_14 % 4]);
+    const int x_290 = asint(x_10[0].x);
     const int x_293 = asint(x_10[1].x);
     const int x_296 = asint(x_10[1].x);
-    const uint scalar_offset_15 = ((16u * 0u)) / 4;
-    const int x_299 = asint(x_10[scalar_offset_15 / 4][scalar_offset_15 % 4]);
+    const int x_299 = asint(x_10[0].x);
     x_GLF_color = float4(float(x_290), float(x_293), float(x_296), float(x_299));
   } else {
     const int x_303 = asint(x_10[1].x);
@@ -290,8 +298,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_3 = {x_GLF_color};
-  return tint_symbol_3;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.fxc.hlsl
index f4f1e65..d3820c9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.fxc.hlsl
@@ -1,4 +1,4 @@
-SKIP: FAILED - TIMEOUT
+SKIP: FAILED
 
 static int x_GLF_global_loop_count = 0;
 cbuffer cbuffer_x_7 : register(b0, space0) {
@@ -33,117 +33,106 @@
   f = x_53;
   const int x_55 = asint(x_10[1].x);
   i = x_55;
-  [loop] while (true) {
+  while (true) {
     const int x_60 = i;
-    const uint scalar_offset = ((16u * 0u)) / 4;
-    const int x_62 = asint(x_10[scalar_offset / 4][scalar_offset % 4]);
+    const int x_62 = asint(x_10[0].x);
     if ((x_60 < x_62)) {
     } else {
       break;
     }
     const int x_66 = asint(x_10[1].x);
     i_1 = x_66;
-    [loop] while (true) {
+    while (true) {
       const int x_71 = i_1;
-      const uint scalar_offset_1 = ((16u * 0u)) / 4;
-      const int x_73 = asint(x_10[scalar_offset_1 / 4][scalar_offset_1 % 4]);
+      const int x_73 = asint(x_10[0].x);
       if ((x_71 < x_73)) {
       } else {
         break;
       }
       const int x_77 = asint(x_10[1].x);
       i_2 = x_77;
-      [loop] while (true) {
+      while (true) {
         const int x_82 = i_2;
-        const uint scalar_offset_2 = ((16u * 0u)) / 4;
-        const int x_84 = asint(x_10[scalar_offset_2 / 4][scalar_offset_2 % 4]);
+        const int x_84 = asint(x_10[0].x);
         if ((x_82 < x_84)) {
         } else {
           break;
         }
         const int x_88 = asint(x_10[1].x);
         i_3 = x_88;
-        [loop] while (true) {
+        while (true) {
           const int x_93 = i_3;
-          const uint scalar_offset_3 = ((16u * 0u)) / 4;
-          const int x_95 = asint(x_10[scalar_offset_3 / 4][scalar_offset_3 % 4]);
+          const int x_95 = asint(x_10[0].x);
           if ((x_93 < x_95)) {
           } else {
             break;
           }
           const int x_99 = asint(x_10[1].x);
           i_4 = x_99;
-          [loop] while (true) {
+          while (true) {
             const int x_104 = i_4;
-            const uint scalar_offset_4 = ((16u * 0u)) / 4;
-            const int x_106 = asint(x_10[scalar_offset_4 / 4][scalar_offset_4 % 4]);
+            const int x_106 = asint(x_10[0].x);
             if ((x_104 < x_106)) {
             } else {
               break;
             }
             const int x_110 = asint(x_10[1].x);
             i_5 = x_110;
-            [loop] while (true) {
+            while (true) {
               const int x_115 = i_5;
-              const uint scalar_offset_5 = ((16u * 0u)) / 4;
-              const int x_117 = asint(x_10[scalar_offset_5 / 4][scalar_offset_5 % 4]);
+              const int x_117 = asint(x_10[0].x);
               if ((x_115 < x_117)) {
               } else {
                 break;
               }
               const int x_121 = asint(x_10[1].x);
               i_6 = x_121;
-              [loop] while (true) {
+              while (true) {
                 const int x_126 = i_6;
-                const uint scalar_offset_6 = ((16u * 0u)) / 4;
-                const int x_128 = asint(x_10[scalar_offset_6 / 4][scalar_offset_6 % 4]);
+                const int x_128 = asint(x_10[0].x);
                 if ((x_126 < x_128)) {
                 } else {
                   break;
                 }
                 const int x_132 = asint(x_10[1].x);
                 i_7 = x_132;
-                [loop] while (true) {
+                while (true) {
                   const int x_137 = i_7;
-                  const uint scalar_offset_7 = ((16u * 0u)) / 4;
-                  const int x_139 = asint(x_10[scalar_offset_7 / 4][scalar_offset_7 % 4]);
+                  const int x_139 = asint(x_10[0].x);
                   if ((x_137 < x_139)) {
                   } else {
                     break;
                   }
                   const int x_143 = asint(x_10[1].x);
                   i_8 = x_143;
-                  [loop] while (true) {
+                  while (true) {
                     const int x_148 = i_8;
-                    const uint scalar_offset_8 = ((16u * 0u)) / 4;
-                    const int x_150 = asint(x_10[scalar_offset_8 / 4][scalar_offset_8 % 4]);
+                    const int x_150 = asint(x_10[0].x);
                     if ((x_148 < x_150)) {
                     } else {
                       break;
                     }
                     const int x_154 = asint(x_10[1].x);
                     i_9 = x_154;
-                    [loop] while (true) {
+                    while (true) {
                       const int x_159 = i_9;
-                      const uint scalar_offset_9 = ((16u * 0u)) / 4;
-                      const int x_161 = asint(x_10[scalar_offset_9 / 4][scalar_offset_9 % 4]);
+                      const int x_161 = asint(x_10[0].x);
                       if ((x_159 < x_161)) {
                       } else {
                         break;
                       }
                       const int x_165 = asint(x_10[1].x);
                       i_10 = x_165;
-                      [loop] while (true) {
+                      while (true) {
                         const int x_170 = i_10;
-                        const uint scalar_offset_10 = ((16u * 0u)) / 4;
-                        const int x_172 = asint(x_10[scalar_offset_10 / 4][scalar_offset_10 % 4]);
+                        const int x_172 = asint(x_10[0].x);
                         if ((x_170 < x_172)) {
                         } else {
                           break;
                         }
                         const int x_176 = asint(x_10[1].x);
                         i_11 = x_176;
-                        [loop] while (true) {
+                        while (true) {
                           const int x_181 = i_11;
                           const int x_183 = asint(x_10[2].x);
                           if ((x_181 < x_183)) {
@@ -152,126 +141,145 @@
                           }
                           const int x_187 = asint(x_10[1].x);
                           i_12 = x_187;
-                          [loop] while (true) {
+                          while (true) {
                             const int x_192 = i_12;
-                            const uint scalar_offset_11 = ((16u * 0u)) / 4;
-                            const int x_194 = asint(x_10[scalar_offset_11 / 4][scalar_offset_11 % 4]);
+                            const int x_194 = asint(x_10[0].x);
                             if ((x_192 < x_194)) {
                             } else {
                               break;
                             }
                             const int x_198 = asint(x_10[1].x);
                             i_13 = x_198;
-                            [loop] while (true) {
+                            while (true) {
                               const int x_203 = i_13;
-                              const uint scalar_offset_12 = ((16u * 0u)) / 4;
-                              const int x_205 = asint(x_10[scalar_offset_12 / 4][scalar_offset_12 % 4]);
+                              const int x_205 = asint(x_10[0].x);
                               if ((x_203 < x_205)) {
                               } else {
                                 break;
                               }
                               const int x_209 = asint(x_10[1].x);
                               i_14 = x_209;
-                              [loop] while (true) {
+                              while (true) {
                                 const int x_214 = i_14;
                                 const int x_216 = asint(x_10[2].x);
                                 if ((x_214 < x_216)) {
                                 } else {
                                   break;
                                 }
-                                [loop] while (true) {
-                                  x_GLF_global_loop_count = (x_GLF_global_loop_count + 1);
+                                while (true) {
+                                  const int x_223 = x_GLF_global_loop_count;
+                                  x_GLF_global_loop_count = (x_223 + 1);
                                   {
                                     const int x_225 = x_GLF_global_loop_count;
                                     const int x_227 = asint(x_10[3].x);
-                                    if ((x_225 < (100 - x_227))) {
-                                    } else {
-                                      break;
-                                    }
+                                    if (!((x_225 < (100 - x_227)))) { break; }
                                   }
                                 }
-                                const uint scalar_offset_13 = ((16u * 0u)) / 4;
-                                const float x_231 = asfloat(x_7[scalar_offset_13 / 4][scalar_offset_13 % 4]);
-                                f = (f + x_231);
+                                const float x_231 = asfloat(x_7[0].x);
+                                const float x_232 = f;
+                                f = (x_232 + x_231);
                                 {
-                                  i_14 = (i_14 + 1);
+                                  const int x_234 = i_14;
+                                  i_14 = (x_234 + 1);
                                 }
                               }
                               {
-                                i_13 = (i_13 + 1);
+                                const int x_236 = i_13;
+                                i_13 = (x_236 + 1);
                               }
                             }
                             {
-                              i_12 = (i_12 + 1);
+                              const int x_238 = i_12;
+                              i_12 = (x_238 + 1);
                             }
                           }
                           {
-                            i_11 = (i_11 + 1);
+                            const int x_240 = i_11;
+                            i_11 = (x_240 + 1);
                           }
                         }
                         {
-                          i_10 = (i_10 + 1);
+                          const int x_242 = i_10;
+                          i_10 = (x_242 + 1);
                         }
                       }
                       {
-                        i_9 = (i_9 + 1);
+                        const int x_244 = i_9;
+                        i_9 = (x_244 + 1);
                       }
                     }
                     {
-                      i_8 = (i_8 + 1);
+                      const int x_246 = i_8;
+                      i_8 = (x_246 + 1);
                     }
                   }
                   {
-                    i_7 = (i_7 + 1);
+                    const int x_248 = i_7;
+                    i_7 = (x_248 + 1);
                   }
                 }
                 {
-                  i_6 = (i_6 + 1);
+                  const int x_250 = i_6;
+                  i_6 = (x_250 + 1);
                 }
               }
               {
-                i_5 = (i_5 + 1);
+                const int x_252 = i_5;
+                i_5 = (x_252 + 1);
               }
             }
             {
-              i_4 = (i_4 + 1);
+              const int x_254 = i_4;
+              i_4 = (x_254 + 1);
             }
           }
           {
-            i_3 = (i_3 + 1);
+            const int x_256 = i_3;
+            i_3 = (x_256 + 1);
           }
         }
         {
-          i_2 = (i_2 + 1);
+          const int x_258 = i_2;
+          i_2 = (x_258 + 1);
         }
       }
       {
-        i_1 = (i_1 + 1);
+        const int x_260 = i_1;
+        i_1 = (x_260 + 1);
       }
     }
     {
-      i = (i + 1);
+      const int x_262 = i;
+      i = (x_262 + 1);
     }
   }
   const float x_265 = asfloat(x_7[1].x);
   sum = x_265;
   const int x_267 = asint(x_10[1].x);
   r = x_267;
-  {
-    [loop] for(; (x_GLF_global_loop_count < 100); r = (r + 1)) {
-      x_GLF_global_loop_count = (x_GLF_global_loop_count + 1);
-      sum = (sum + f);
+  while (true) {
+    const int x_272 = x_GLF_global_loop_count;
+    if ((x_272 < 100)) {
+    } else {
+      break;
+    }
+    const int x_275 = x_GLF_global_loop_count;
+    x_GLF_global_loop_count = (x_275 + 1);
+    const float x_277 = f;
+    const float x_278 = sum;
+    sum = (x_278 + x_277);
+    {
+      const int x_280 = r;
+      r = (x_280 + 1);
     }
   }
   const float x_282 = sum;
   const float x_284 = asfloat(x_7[2].x);
   if ((x_282 == x_284)) {
-    const uint scalar_offset_14 = ((16u * 0u)) / 4;
-    const int x_290 = asint(x_10[scalar_offset_14 / 4][scalar_offset_14 % 4]);
+    const int x_290 = asint(x_10[0].x);
     const int x_293 = asint(x_10[1].x);
     const int x_296 = asint(x_10[1].x);
-    const uint scalar_offset_15 = ((16u * 0u)) / 4;
-    const int x_299 = asint(x_10[scalar_offset_15 / 4][scalar_offset_15 % 4]);
+    const int x_299 = asint(x_10[0].x);
     x_GLF_color = float4(float(x_290), float(x_293), float(x_296), float(x_299));
   } else {
     const int x_303 = asint(x_10[1].x);
@@ -290,8 +298,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_3 = {x_GLF_color};
-  return tint_symbol_3;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.fxc.hlsl
index bf6afb5..13a113d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.fxc.hlsl
@@ -21,10 +21,7 @@
       {
         const int x_50 = asint(x_5[1].x);
         const int x_52 = asint(x_5[0].x);
-        if ((x_50 > x_52)) {
-        } else {
-          break;
-        }
+        if (!((x_50 > x_52))) { break; }
       }
     }
     return;
@@ -41,8 +38,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_2 = {x_GLF_color};
-  return tint_symbol_2;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -51,6 +48,3 @@
   wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
   return wrapper_result;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000002846F515BE0(15,19-22): 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.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.fxc.hlsl
index d1793da..13a113d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.fxc.hlsl
@@ -21,10 +21,7 @@
       {
         const int x_50 = asint(x_5[1].x);
         const int x_52 = asint(x_5[0].x);
-        if ((x_50 > x_52)) {
-        } else {
-          break;
-        }
+        if (!((x_50 > x_52))) { break; }
       }
     }
     return;
@@ -41,8 +38,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_2 = {x_GLF_color};
-  return tint_symbol_2;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -51,6 +48,3 @@
   wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
   return wrapper_result;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x0000021F2F7ADEC0(15,19-22): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.dxc.hlsl
index 6e91cb6..c8743fa 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.dxc.hlsl
@@ -13,21 +13,16 @@
 
 void main_1() {
   int i = 0;
-  const uint scalar_offset = ((16u * 0u)) / 4;
-  const float x_38 = asfloat(x_5[scalar_offset / 4][scalar_offset % 4]);
+  const float x_38 = asfloat(x_5[0].x);
   x_GLF_color = float4(x_38, x_38, x_38, x_38);
   const float x_41 = asfloat(x_7[0].x);
-  const uint scalar_offset_1 = ((16u * 0u)) / 4;
-  const float x_43 = asfloat(x_5[scalar_offset_1 / 4][scalar_offset_1 % 4]);
+  const float x_43 = asfloat(x_5[0].x);
   if ((x_41 > x_43)) {
     while (true) {
       const float x_53 = asfloat(x_5[1].x);
       x_GLF_color = float4(x_53, x_53, x_53, x_53);
       {
-        if (true) {
-        } else {
-          break;
-        }
+        if (false) { break; }
       }
     }
   } else {
@@ -41,33 +36,27 @@
         i = x_13;
         while (true) {
           const int x_14 = i;
-          const uint scalar_offset_2 = ((16u * 0u)) / 4;
-          const int x_15 = asint(x_10[scalar_offset_2 / 4][scalar_offset_2 % 4]);
+          const int x_15 = asint(x_10[0].x);
           if ((x_14 < x_15)) {
           } else {
             break;
           }
           const float x_73 = asfloat(x_5[1].x);
-          const uint scalar_offset_3 = ((16u * 0u)) / 4;
-          const float x_75 = asfloat(x_5[scalar_offset_3 / 4][scalar_offset_3 % 4]);
-          const uint scalar_offset_4 = ((16u * 0u)) / 4;
-          const float x_77 = asfloat(x_5[scalar_offset_4 / 4][scalar_offset_4 % 4]);
+          const float x_75 = asfloat(x_5[0].x);
+          const float x_77 = asfloat(x_5[0].x);
           const float x_79 = asfloat(x_5[1].x);
           x_GLF_color = float4(x_73, x_75, x_77, x_79);
           {
-            i = (i + 1);
+            const int x_16 = i;
+            i = (x_16 + 1);
           }
         }
         break;
       }
       {
         const float x_82 = asfloat(x_7[0].x);
-        const uint scalar_offset_5 = ((16u * 0u)) / 4;
-        const float x_84 = asfloat(x_5[scalar_offset_5 / 4][scalar_offset_5 % 4]);
-        if ((x_82 > x_84)) {
-        } else {
-          break;
-        }
+        const float x_84 = asfloat(x_5[0].x);
+        if (!((x_82 > x_84))) { break; }
       }
     }
   }
@@ -83,8 +72,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_4 = {x_GLF_color};
-  return tint_symbol_4;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -94,10 +83,10 @@
   return wrapper_result;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
-shader.hlsl:88: error: Loop must have break.
+shader.hlsl:77: 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.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.fxc.hlsl
index e36db3f..274e639 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.fxc.hlsl
@@ -22,10 +22,7 @@
       const float x_53 = asfloat(x_5[1].x);
       x_GLF_color = float4(x_53, x_53, x_53, x_53);
       {
-        if (true) {
-        } else {
-          break;
-        }
+        if (false) { break; }
       }
     }
   } else {
@@ -50,7 +47,8 @@
           const float x_79 = asfloat(x_5[1].x);
           x_GLF_color = float4(x_73, x_75, x_77, x_79);
           {
-            i = (i + 1);
+            const int x_16 = i;
+            i = (x_16 + 1);
           }
         }
         break;
@@ -58,10 +56,7 @@
       {
         const float x_82 = asfloat(x_7[0].x);
         const float x_84 = asfloat(x_5[0].x);
-        if ((x_82 > x_84)) {
-        } else {
-          break;
-        }
+        if (!((x_82 > x_84))) { break; }
       }
     }
   }
@@ -77,8 +72,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_4 = {x_GLF_color};
-  return tint_symbol_4;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -87,6 +82,3 @@
   wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
   return wrapper_result;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000001929B3C3AD0(19,19-22): 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.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.dxc.hlsl
index 6e91cb6..c8743fa 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.dxc.hlsl
@@ -13,21 +13,16 @@
 
 void main_1() {
   int i = 0;
-  const uint scalar_offset = ((16u * 0u)) / 4;
-  const float x_38 = asfloat(x_5[scalar_offset / 4][scalar_offset % 4]);
+  const float x_38 = asfloat(x_5[0].x);
   x_GLF_color = float4(x_38, x_38, x_38, x_38);
   const float x_41 = asfloat(x_7[0].x);
-  const uint scalar_offset_1 = ((16u * 0u)) / 4;
-  const float x_43 = asfloat(x_5[scalar_offset_1 / 4][scalar_offset_1 % 4]);
+  const float x_43 = asfloat(x_5[0].x);
   if ((x_41 > x_43)) {
     while (true) {
       const float x_53 = asfloat(x_5[1].x);
       x_GLF_color = float4(x_53, x_53, x_53, x_53);
       {
-        if (true) {
-        } else {
-          break;
-        }
+        if (false) { break; }
       }
     }
   } else {
@@ -41,33 +36,27 @@
         i = x_13;
         while (true) {
           const int x_14 = i;
-          const uint scalar_offset_2 = ((16u * 0u)) / 4;
-          const int x_15 = asint(x_10[scalar_offset_2 / 4][scalar_offset_2 % 4]);
+          const int x_15 = asint(x_10[0].x);
           if ((x_14 < x_15)) {
           } else {
             break;
           }
           const float x_73 = asfloat(x_5[1].x);
-          const uint scalar_offset_3 = ((16u * 0u)) / 4;
-          const float x_75 = asfloat(x_5[scalar_offset_3 / 4][scalar_offset_3 % 4]);
-          const uint scalar_offset_4 = ((16u * 0u)) / 4;
-          const float x_77 = asfloat(x_5[scalar_offset_4 / 4][scalar_offset_4 % 4]);
+          const float x_75 = asfloat(x_5[0].x);
+          const float x_77 = asfloat(x_5[0].x);
           const float x_79 = asfloat(x_5[1].x);
           x_GLF_color = float4(x_73, x_75, x_77, x_79);
           {
-            i = (i + 1);
+            const int x_16 = i;
+            i = (x_16 + 1);
           }
         }
         break;
       }
       {
         const float x_82 = asfloat(x_7[0].x);
-        const uint scalar_offset_5 = ((16u * 0u)) / 4;
-        const float x_84 = asfloat(x_5[scalar_offset_5 / 4][scalar_offset_5 % 4]);
-        if ((x_82 > x_84)) {
-        } else {
-          break;
-        }
+        const float x_84 = asfloat(x_5[0].x);
+        if (!((x_82 > x_84))) { break; }
       }
     }
   }
@@ -83,8 +72,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_4 = {x_GLF_color};
-  return tint_symbol_4;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -94,10 +83,10 @@
   return wrapper_result;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
-shader.hlsl:88: error: Loop must have break.
+shader.hlsl:77: 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.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.fxc.hlsl
index 84a1200..274e639 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.fxc.hlsl
@@ -22,10 +22,7 @@
       const float x_53 = asfloat(x_5[1].x);
       x_GLF_color = float4(x_53, x_53, x_53, x_53);
       {
-        if (true) {
-        } else {
-          break;
-        }
+        if (false) { break; }
       }
     }
   } else {
@@ -50,7 +47,8 @@
           const float x_79 = asfloat(x_5[1].x);
           x_GLF_color = float4(x_73, x_75, x_77, x_79);
           {
-            i = (i + 1);
+            const int x_16 = i;
+            i = (x_16 + 1);
           }
         }
         break;
@@ -58,10 +56,7 @@
       {
         const float x_82 = asfloat(x_7[0].x);
         const float x_84 = asfloat(x_5[0].x);
-        if ((x_82 > x_84)) {
-        } else {
-          break;
-        }
+        if (!((x_82 > x_84))) { break; }
       }
     }
   }
@@ -77,8 +72,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_4 = {x_GLF_color};
-  return tint_symbol_4;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -87,6 +82,3 @@
   wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
   return wrapper_result;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000001315FE521C0(19,19-22): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.dxc.hlsl
index bd7d689..ef52522 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.dxc.hlsl
@@ -31,15 +31,18 @@
   const float x_34 = fx_();
   x_GLF_color = float4(x_34, 0.0f, 0.0f, 1.0f);
   while (true) {
-    if ((x2 > 2.0f)) {
+    const float x_40 = x2;
+    if ((x_40 > 2.0f)) {
     } else {
       break;
     }
     const float x_43 = fx_();
     const float x_44 = fx_();
     k0 = (x_43 - x_44);
-    B = k0;
-    x2 = B;
+    const float x_46 = k0;
+    B = x_46;
+    const float x_47 = B;
+    x2 = x_47;
   }
   return;
 }
@@ -57,8 +60,8 @@
 main_out main_inner(float4 gl_FragCoord_param) {
   gl_FragCoord = gl_FragCoord_param;
   main_1();
-  const main_out tint_symbol_4 = {x_GLF_color};
-  return tint_symbol_4;
+  const main_out tint_symbol_3 = {x_GLF_color};
+  return tint_symbol_3;
 }
 
 tint_symbol_2 main(tint_symbol_1 tint_symbol) {
@@ -68,10 +71,10 @@
   return wrapper_result;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
-shader.hlsl:62: error: Loop must have break.
+shader.hlsl:65: error: Loop must have break.
 Validation failed.
 
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.fxc.hlsl
index 4613441..0690e74 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.fxc.hlsl
@@ -31,15 +31,18 @@
   const float x_34 = fx_();
   x_GLF_color = float4(x_34, 0.0f, 0.0f, 1.0f);
   while (true) {
-    if ((x2 > 2.0f)) {
+    const float x_40 = x2;
+    if ((x_40 > 2.0f)) {
     } else {
       break;
     }
     const float x_43 = fx_();
     const float x_44 = fx_();
     k0 = (x_43 - x_44);
-    B = k0;
-    x2 = B;
+    const float x_46 = k0;
+    B = x_46;
+    const float x_47 = B;
+    x2 = x_47;
   }
   return;
 }
@@ -57,8 +60,8 @@
 main_out main_inner(float4 gl_FragCoord_param) {
   gl_FragCoord = gl_FragCoord_param;
   main_1();
-  const main_out tint_symbol_4 = {x_GLF_color};
-  return tint_symbol_4;
+  const main_out tint_symbol_3 = {x_GLF_color};
+  return tint_symbol_3;
 }
 
 tint_symbol_2 main(tint_symbol_1 tint_symbol) {
@@ -67,6 +70,3 @@
   wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
   return wrapper_result;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x00000159B88568E0(13,17-20): 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.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.dxc.hlsl
index bd7d689..ef52522 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.dxc.hlsl
@@ -31,15 +31,18 @@
   const float x_34 = fx_();
   x_GLF_color = float4(x_34, 0.0f, 0.0f, 1.0f);
   while (true) {
-    if ((x2 > 2.0f)) {
+    const float x_40 = x2;
+    if ((x_40 > 2.0f)) {
     } else {
       break;
     }
     const float x_43 = fx_();
     const float x_44 = fx_();
     k0 = (x_43 - x_44);
-    B = k0;
-    x2 = B;
+    const float x_46 = k0;
+    B = x_46;
+    const float x_47 = B;
+    x2 = x_47;
   }
   return;
 }
@@ -57,8 +60,8 @@
 main_out main_inner(float4 gl_FragCoord_param) {
   gl_FragCoord = gl_FragCoord_param;
   main_1();
-  const main_out tint_symbol_4 = {x_GLF_color};
-  return tint_symbol_4;
+  const main_out tint_symbol_3 = {x_GLF_color};
+  return tint_symbol_3;
 }
 
 tint_symbol_2 main(tint_symbol_1 tint_symbol) {
@@ -68,10 +71,10 @@
   return wrapper_result;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
-shader.hlsl:62: error: Loop must have break.
+shader.hlsl:65: error: Loop must have break.
 Validation failed.
 
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.fxc.hlsl
index bbcf4d9..0690e74 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.fxc.hlsl
@@ -31,15 +31,18 @@
   const float x_34 = fx_();
   x_GLF_color = float4(x_34, 0.0f, 0.0f, 1.0f);
   while (true) {
-    if ((x2 > 2.0f)) {
+    const float x_40 = x2;
+    if ((x_40 > 2.0f)) {
     } else {
       break;
     }
     const float x_43 = fx_();
     const float x_44 = fx_();
     k0 = (x_43 - x_44);
-    B = k0;
-    x2 = B;
+    const float x_46 = k0;
+    B = x_46;
+    const float x_47 = B;
+    x2 = x_47;
   }
   return;
 }
@@ -57,8 +60,8 @@
 main_out main_inner(float4 gl_FragCoord_param) {
   gl_FragCoord = gl_FragCoord_param;
   main_1();
-  const main_out tint_symbol_4 = {x_GLF_color};
-  return tint_symbol_4;
+  const main_out tint_symbol_3 = {x_GLF_color};
+  return tint_symbol_3;
 }
 
 tint_symbol_2 main(tint_symbol_1 tint_symbol) {
@@ -67,6 +70,3 @@
   wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
   return wrapper_result;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000001F512A7F040(13,17-20): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.fxc.hlsl
index fda9d8b..18af688 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.fxc.hlsl
@@ -10,84 +10,67 @@
   while (true) {
     bool x_45 = false;
     int x_48 = 0;
+    int x_50 = 0;
+    int x_52 = 0;
     int x_49 = 0;
     bool x_46 = false;
+    int x_111 = 0;
+    bool x_112 = false;
     int x_115 = 0;
+    int x_118 = 0;
+    int x_120 = 0;
     int x_116 = 0;
-    bool x_45_phi = false;
-    int x_48_phi = 0;
-    int x_50_phi = 0;
-    int x_52_phi = 0;
-    int x_111_phi = 0;
-    bool x_112_phi = false;
-    int x_115_phi = 0;
-    int x_118_phi = 0;
-    int x_120_phi = 0;
-    int x_161_phi = 0;
+    int x_161 = 0;
     const float x_40 = asfloat(x_6[0].x);
     const bool x_41 = (x_40 < -1.0f);
-    x_45_phi = false;
-    x_48_phi = 0;
-    x_50_phi = 0;
-    x_52_phi = 0;
+    x_45 = false;
+    x_48 = 0;
+    x_50 = 0;
+    x_52 = 0;
     while (true) {
       int x_62 = 0;
       int x_65 = 0;
+      int x_67 = 0;
       int x_66 = 0;
       int x_63 = 0;
+      int x_51 = 0;
       int x_53 = 0;
-      int x_62_phi = 0;
-      int x_65_phi = 0;
-      int x_67_phi = 0;
-      int x_51_phi = 0;
-      int x_49_phi = 0;
-      bool x_46_phi = false;
-      x_45 = x_45_phi;
-      x_48 = x_48_phi;
-      const int x_50 = x_50_phi;
-      const int x_52 = x_52_phi;
       const float x_55 = gl_FragCoord.y;
-      x_111_phi = x_48;
-      x_112_phi = x_45;
+      x_111 = x_48;
+      x_112 = x_45;
       if ((x_52 < ((x_55 > -1.0f) ? 10 : 100))) {
       } else {
         break;
       }
-      x_62_phi = x_48;
-      x_65_phi = x_50;
-      x_67_phi = 0;
+      x_62 = x_48;
+      x_65 = x_50;
+      x_67 = 0;
       while (true) {
         int x_97 = 0;
         int x_68 = 0;
-        int x_66_phi = 0;
-        x_62 = x_62_phi;
-        x_65 = x_65_phi;
-        const int x_67 = x_67_phi;
-        x_51_phi = x_65;
-        x_49_phi = x_62;
-        x_46_phi = x_45;
+        x_51 = x_65;
+        x_49 = x_62;
+        x_46 = x_45;
         if ((x_67 < 2)) {
         } else {
           break;
         }
         while (true) {
           bool x_78 = false;
-          int x_86_phi = 0;
-          int x_97_phi = 0;
-          bool x_98_phi = false;
+          int x_86 = 0;
+          bool x_98 = false;
           const float x_77 = gl_FragCoord.x;
           x_78 = (x_77 < -1.0f);
           if (!((x_40 < 0.0f))) {
             if (x_78) {
-              x_66_phi = 0;
+              x_66 = 0;
               break;
             }
-            x_86_phi = 1;
+            x_86 = 1;
             while (true) {
               int x_87 = 0;
-              const int x_86 = x_86_phi;
-              x_97_phi = x_65;
-              x_98_phi = false;
+              x_97 = x_65;
+              x_98 = false;
               if ((x_86 < 3)) {
               } else {
                 break;
@@ -95,32 +78,29 @@
               if (x_78) {
                 {
                   x_87 = (x_86 + 1);
-                  x_86_phi = x_87;
+                  x_86 = x_87;
                 }
                 continue;
               }
               if ((x_86 > 0)) {
-                x_97_phi = 1;
-                x_98_phi = true;
+                x_97 = 1;
+                x_98 = true;
                 break;
               }
               {
                 x_87 = (x_86 + 1);
-                x_86_phi = x_87;
+                x_86 = x_87;
               }
             }
-            x_97 = x_97_phi;
-            const bool x_98 = x_98_phi;
-            x_66_phi = x_97;
+            x_66 = x_97;
             if (x_98) {
               break;
             }
           }
-          x_66_phi = 0;
+          x_66 = 0;
           break;
         }
-        x_66 = x_66_phi;
-        x_63 = asint((x_62 + x_66));
+        x_63 = (x_62 + x_66);
         if (x_41) {
           while (true) {
             if (x_41) {
@@ -132,77 +112,68 @@
               x_GLF_color = float4(x_105, x_105, x_105, x_105);
             }
           }
-          x_51_phi = x_66;
-          x_49_phi = x_63;
-          x_46_phi = true;
+          x_51 = x_66;
+          x_49 = x_63;
+          x_46 = true;
           break;
         }
         {
           x_68 = (x_67 + 1);
-          x_62_phi = x_63;
-          x_65_phi = x_66;
-          x_67_phi = x_68;
+          x_62 = x_63;
+          x_65 = x_66;
+          x_67 = x_68;
         }
       }
-      const int x_51 = x_51_phi;
-      x_49 = x_49_phi;
-      x_46 = x_46_phi;
-      x_111_phi = x_49;
-      x_112_phi = x_46;
+      x_111 = x_49;
+      x_112 = x_46;
       if (x_46) {
         break;
       }
       if (!(x_41)) {
-        x_111_phi = x_49;
-        x_112_phi = x_46;
+        x_111 = x_49;
+        x_112 = x_46;
         break;
       }
       {
         x_53 = (x_52 + 1);
-        x_45_phi = x_46;
-        x_48_phi = x_49;
-        x_50_phi = x_51;
-        x_52_phi = x_53;
+        x_45 = x_46;
+        x_48 = x_49;
+        x_50 = x_51;
+        x_52 = x_53;
       }
     }
-    const int x_111 = x_111_phi;
-    if (x_112_phi) {
+    if (x_112) {
       break;
     }
-    x_115_phi = x_111;
-    x_118_phi = 0;
-    x_120_phi = 0;
+    x_115 = x_111;
+    x_118 = 0;
+    x_120 = 0;
     while (true) {
       int x_154 = 0;
+      int x_119 = 0;
       int x_121 = 0;
-      int x_119_phi = 0;
-      x_115 = x_115_phi;
-      const int x_118 = x_118_phi;
-      const int x_120 = x_120_phi;
       const float x_123 = asfloat(x_6[0].y);
-      x_161_phi = x_115;
+      x_161 = x_115;
       if ((x_120 < int((x_123 + 1.0f)))) {
       } else {
         break;
       }
       while (true) {
         bool x_135 = false;
-        int x_143_phi = 0;
-        int x_154_phi = 0;
-        bool x_155_phi = false;
+        int x_143 = 0;
+        bool x_155 = false;
         const float x_134 = gl_FragCoord.x;
         x_135 = (x_134 < -1.0f);
         if (!((x_40 < 0.0f))) {
           if (x_135) {
-            x_119_phi = 0;
+            x_119 = 0;
             break;
           }
-          x_143_phi = 1;
+          x_143 = 1;
           while (true) {
             int x_144 = 0;
-            const int x_143 = x_143_phi;
-            x_154_phi = x_118;
-            x_155_phi = false;
+            x_154 = x_118;
+            x_155 = false;
             if ((x_143 < 3)) {
             } else {
               break;
@@ -210,45 +181,41 @@
             if (x_135) {
               {
                 x_144 = (x_143 + 1);
-                x_143_phi = x_144;
+                x_143 = x_144;
               }
               continue;
             }
             if ((x_143 > 0)) {
-              x_154_phi = 1;
-              x_155_phi = true;
+              x_154 = 1;
+              x_155 = true;
               break;
             }
             {
               x_144 = (x_143 + 1);
-              x_143_phi = x_144;
+              x_143 = x_144;
             }
           }
-          x_154 = x_154_phi;
-          const bool x_155 = x_155_phi;
-          x_119_phi = x_154;
+          x_119 = x_154;
           if (x_155) {
             break;
           }
         }
-        x_119_phi = 0;
+        x_119 = 0;
         break;
       }
-      int x_119 = 0;
-      x_119 = x_119_phi;
-      x_116 = asint((x_115 + x_119));
+      x_116 = (x_115 + x_119);
       if ((!(x_41) ? false : x_41)) {
-        x_161_phi = x_116;
+        x_161 = x_116;
         break;
       }
       {
         x_121 = (x_120 + 1);
-        x_115_phi = x_116;
-        x_118_phi = x_119;
-        x_120_phi = x_121;
+        x_115 = x_116;
+        x_118 = x_119;
+        x_120 = x_121;
       }
     }
-    if ((x_161_phi == 4)) {
+    if ((x_161 == 4)) {
       x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
     } else {
       x_GLF_color = (0.0f).xxxx;
@@ -271,8 +238,8 @@
 main_out main_inner(float4 gl_FragCoord_param) {
   gl_FragCoord = gl_FragCoord_param;
   main_1();
-  const main_out tint_symbol_4 = {x_GLF_color};
-  return tint_symbol_4;
+  const main_out tint_symbol_3 = {x_GLF_color};
+  return tint_symbol_3;
 }
 
 tint_symbol_2 main(tint_symbol_1 tint_symbol) {
@@ -281,9 +248,3 @@
   wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
   return wrapper_result;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x00000205982E68C0(8,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
-C:\src\dawn\test\tint\Shader@0x00000205982E68C0(71,16-27): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
-C:\src\dawn\test\tint\Shader@0x00000205982E68C0(186,14-25): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
-C:\src\dawn\test\tint\Shader@0x00000205982E68C0(123,18-29): error X4029: infinite loop detected - loop never exits
-
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.fxc.hlsl
index 8cd8633..bf60e5a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.fxc.hlsl
@@ -166,7 +166,8 @@
       }
     }
     const int x_111 = x_111_phi;
-    if (x_112_phi) {
+    const bool x_112 = x_112_phi;
+    if (x_112) {
       break;
     }
     x_115_phi = x_111;
@@ -248,7 +249,8 @@
         x_120_phi = x_121;
       }
     }
-    if ((x_161_phi == 4)) {
+    const int x_161 = x_161_phi;
+    if ((x_161 == 4)) {
       x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
     } else {
       x_GLF_color = (0.0f).xxxx;
@@ -271,8 +273,8 @@
 main_out main_inner(float4 gl_FragCoord_param) {
   gl_FragCoord = gl_FragCoord_param;
   main_1();
-  const main_out tint_symbol_4 = {x_GLF_color};
-  return tint_symbol_4;
+  const main_out tint_symbol_3 = {x_GLF_color};
+  return tint_symbol_3;
 }
 
 tint_symbol_2 main(tint_symbol_1 tint_symbol) {
@@ -281,9 +283,3 @@
   wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
   return wrapper_result;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000001E775162FA0(8,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
-C:\src\dawn\test\tint\Shader@0x000001E775162FA0(71,16-27): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
-C:\src\dawn\test\tint\Shader@0x000001E775162FA0(186,14-25): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
-C:\src\dawn\test\tint\Shader@0x000001E775162FA0(123,18-29): error X4029: infinite loop detected - loop never exits
-
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.fxc.hlsl
index 5d3380f..3804421 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.fxc.hlsl
@@ -1,4 +1,4 @@
-SKIP: FAILED - TIMEOUT
+SKIP: FAILED
 
 static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
 cbuffer cbuffer_x_7 : register(b0, space0) {
@@ -7,6 +7,15 @@
 static int map[256] = (int[256])0;
 static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
 
+int tint_mod(int lhs, int rhs) {
+  const int rhs_or_one = (((rhs == 0) | ((lhs == -2147483648) & (rhs == -1))) ? 1 : rhs);
+  if (any(((uint((lhs | rhs_or_one)) & 2147483648u) != 0u))) {
+    return (lhs - ((lhs / rhs_or_one) * rhs_or_one));
+  } else {
+    return (lhs % rhs_or_one);
+  }
+}
+
 void main_1() {
   float2 pos = float2(0.0f, 0.0f);
   int2 ipos = int2(0, 0);
@@ -24,9 +33,17 @@
   const float x_69 = pos.y;
   ipos = int2(int((x_65 * 16.0f)), int((x_69 * 16.0f)));
   i = 0;
-  {
-    for(; (i < 256); i = (i + 1)) {
-      map[i] = 0;
+  while (true) {
+    const int x_77 = i;
+    if ((x_77 < 256)) {
+    } else {
+      break;
+    }
+    const int x_80 = i;
+    map[x_80] = 0;
+    {
+      const int x_82 = i;
+      i = (x_82 + 1);
     }
   }
   p = (0).xx;
@@ -34,135 +51,164 @@
   v = 0;
   while (true) {
     bool x_104 = false;
+    bool x_105 = false;
     bool x_124 = false;
+    bool x_125 = false;
     bool x_144 = false;
+    bool x_145 = false;
     bool x_164 = false;
-    bool x_105_phi = false;
-    bool x_125_phi = false;
-    bool x_145_phi = false;
-    bool x_165_phi = false;
-    v = (v + 1);
+    bool x_165 = false;
+    const int x_88 = v;
+    v = (x_88 + 1);
     directions = 0;
     const int x_91 = p.x;
     const bool x_92 = (x_91 > 0);
-    x_105_phi = x_92;
+    x_105 = x_92;
     if (x_92) {
       const int x_96 = p.x;
       const int x_99 = p.y;
       const int x_103 = map[((x_96 - 2) + (x_99 * 16))];
       x_104 = (x_103 == 0);
-      x_105_phi = x_104;
+      x_105 = x_104;
     }
-    if (x_105_phi) {
-      directions = (directions + 1);
+    if (x_105) {
+      const int x_108 = directions;
+      directions = (x_108 + 1);
     }
     const int x_111 = p.y;
     const bool x_112 = (x_111 > 0);
-    x_125_phi = x_112;
+    x_125 = x_112;
     if (x_112) {
       const int x_116 = p.x;
       const int x_118 = p.y;
       const int x_123 = map[(x_116 + ((x_118 - 2) * 16))];
       x_124 = (x_123 == 0);
-      x_125_phi = x_124;
+      x_125 = x_124;
     }
-    if (x_125_phi) {
-      directions = (directions + 1);
+    if (x_125) {
+      const int x_128 = directions;
+      directions = (x_128 + 1);
     }
     const int x_131 = p.x;
     const bool x_132 = (x_131 < 14);
-    x_145_phi = x_132;
+    x_145 = x_132;
     if (x_132) {
       const int x_136 = p.x;
       const int x_139 = p.y;
       const int x_143 = map[((x_136 + 2) + (x_139 * 16))];
       x_144 = (x_143 == 0);
-      x_145_phi = x_144;
+      x_145 = x_144;
     }
-    if (x_145_phi) {
-      directions = (directions + 1);
+    if (x_145) {
+      const int x_148 = directions;
+      directions = (x_148 + 1);
     }
     const int x_151 = p.y;
     const bool x_152 = (x_151 < 14);
-    x_165_phi = x_152;
+    x_165 = x_152;
     if (x_152) {
       const int x_156 = p.x;
       const int x_158 = p.y;
       const int x_163 = map[(x_156 + ((x_158 + 2) * 16))];
       x_164 = (x_163 == 0);
-      x_165_phi = x_164;
+      x_165 = x_164;
     }
-    if (x_165_phi) {
-      directions = (directions + 1);
+    if (x_165) {
+      const int x_168 = directions;
+      directions = (x_168 + 1);
     }
     bool x_229 = false;
+    bool x_230 = false;
     bool x_242 = false;
+    bool x_243 = false;
     bool x_281 = false;
+    bool x_282 = false;
     int x_288 = 0;
     int x_289 = 0;
+    int x_290 = 0;
     int x_295 = 0;
     int x_296 = 0;
+    int x_297 = 0;
     int x_303[256] = (int[256])0;
     int x_304[256] = (int[256])0;
+    int x_305[256] = (int[256])0;
     int x_315 = 0;
     int x_316 = 0;
+    int x_317 = 0;
     bool x_359 = false;
+    bool x_360 = false;
     bool x_372 = false;
+    bool x_373 = false;
     bool x_411 = false;
+    bool x_412 = false;
     bool x_424 = false;
-    bool x_230_phi = false;
-    bool x_243_phi = false;
-    bool x_282_phi = false;
-    int x_290_phi = 0;
-    int x_297_phi = 0;
-    int x_305_phi[256] = (int[256])0;
-    int x_317_phi = 0;
-    bool x_360_phi = false;
-    bool x_373_phi = false;
-    bool x_412_phi = false;
-    bool x_425_phi = false;
-    if ((directions == 0)) {
+    bool x_425 = false;
+    const int x_170 = directions;
+    if ((x_170 == 0)) {
       canwalk = false;
       i = 0;
-      {
-        for(; (i < 8); i = (i + 1)) {
-          j = 0;
-          {
-            for(; (j < 8); j = (j + 1)) {
-              const int x_196 = map[((j * 2) + ((i * 2) * 16))];
-              if ((x_196 == 0)) {
-                p.x = (j * 2);
-                p.y = (i * 2);
-                canwalk = true;
-              }
-            }
+      while (true) {
+        const int x_179 = i;
+        if ((x_179 < 8)) {
+        } else {
+          break;
+        }
+        j = 0;
+        while (true) {
+          const int x_186 = j;
+          if ((x_186 < 8)) {
+          } else {
+            break;
           }
+          const int x_189 = j;
+          const int x_191 = i;
+          const int x_196 = map[((x_189 * 2) + ((x_191 * 2) * 16))];
+          if ((x_196 == 0)) {
+            const int x_200 = j;
+            p.x = (x_200 * 2);
+            const int x_203 = i;
+            p.y = (x_203 * 2);
+            canwalk = true;
+          }
+          {
+            const int x_206 = j;
+            j = (x_206 + 1);
+          }
+        }
+        {
+          const int x_208 = i;
+          i = (x_208 + 1);
         }
       }
       const int x_211 = p.x;
       const int x_213 = p.y;
       map[(x_211 + (x_213 * 16))] = 1;
     } else {
-      d = (v % (directions == 0 ? 1 : directions));
-      v = (v + directions);
-      const bool x_224 = (d >= 0);
-      x_230_phi = x_224;
+      const int x_217 = v;
+      const int x_218 = directions;
+      d = tint_mod(x_217, x_218);
+      const int x_220 = directions;
+      const int x_221 = v;
+      v = (x_221 + x_220);
+      const int x_223 = d;
+      const bool x_224 = (x_223 >= 0);
+      x_230 = x_224;
       if (x_224) {
         const int x_228 = p.x;
         x_229 = (x_228 > 0);
-        x_230_phi = x_229;
+        x_230 = x_229;
       }
-      const bool x_230 = x_230_phi;
-      x_243_phi = x_230;
+      x_243 = x_230;
       if (x_230) {
         const int x_234 = p.x;
         const int x_237 = p.y;
         const int x_241 = map[((x_234 - 2) + (x_237 * 16))];
         x_242 = (x_241 == 0);
-        x_243_phi = x_242;
+        x_243 = x_242;
       }
-      if (x_243_phi) {
-        d = (d - 1);
+      if (x_243) {
+        const int x_246 = d;
+        d = (x_246 - 1);
         const int x_249 = p.x;
         const int x_251 = p.y;
         map[(x_249 + (x_251 * 16))] = 1;
@@ -175,56 +221,55 @@
         const int x_272 = p.x;
         p.x = (x_272 - 2);
       }
-      const bool x_276 = (d >= 0);
-      x_282_phi = x_276;
+      const int x_275 = d;
+      const bool x_276 = (x_275 >= 0);
+      x_282 = x_276;
       if (x_276) {
         const int x_280 = p.y;
         x_281 = (x_280 > 0);
-        x_282_phi = x_281;
+        x_282 = x_281;
       }
-      const bool x_282 = x_282_phi;
       if (x_282) {
         x_288 = p.x;
-        x_290_phi = x_288;
+        x_290 = x_288;
       } else {
         x_289 = 0;
-        x_290_phi = x_289;
+        x_290 = x_289;
       }
-      const int x_290 = x_290_phi;
       if (x_282) {
         x_295 = p.y;
-        x_297_phi = x_295;
+        x_297 = x_295;
       } else {
         x_296 = 0;
-        x_297_phi = x_296;
+        x_297 = x_296;
       }
-      const int x_299 = ((x_297_phi - 2) * 16);
+      const int x_299 = ((x_297 - 2) * 16);
       if (x_282) {
         x_303 = map;
-        x_305_phi = x_303;
+        x_305 = x_303;
       } else {
-        const int tint_symbol_4[256] = (int[256])0;
-        x_304 = tint_symbol_4;
-        x_305_phi = x_304;
+        const int tint_symbol_3[256] = (int[256])0;
+        x_304 = tint_symbol_3;
+        x_305 = x_304;
       }
-      const int x_305[256] = x_305_phi;
       if (x_282) {
-        const int tint_symbol_5[256] = (int[256])0;
-        map = tint_symbol_5;
+        const int tint_symbol_4[256] = (int[256])0;
+        map = tint_symbol_4;
       }
       if (x_282) {
         map = x_305;
       }
       if (x_282) {
         x_315 = map[(x_290 + x_299)];
-        x_317_phi = x_315;
+        x_317 = x_315;
       } else {
         x_316 = 0;
-        x_317_phi = x_316;
+        x_317 = x_316;
       }
-      const bool x_318 = (x_317_phi == 0);
+      const bool x_318 = (x_317 == 0);
       if ((x_282 ? x_318 : x_282)) {
-        d = (d - 1);
+        const int x_323 = d;
+        d = (x_323 - 1);
         const int x_326 = p.x;
         const int x_328 = p.y;
         map[(x_326 + (x_328 * 16))] = 1;
@@ -234,31 +279,32 @@
         const int x_341 = p.x;
         const int x_343 = p.y;
         const int x_345[256] = map;
-        const int tint_symbol_6[256] = (int[256])0;
-        map = tint_symbol_6;
+        const int tint_symbol_5[256] = (int[256])0;
+        map = tint_symbol_5;
         map = x_345;
         map[(x_341 + ((x_343 - 2) * 16))] = 1;
         const int x_350 = p.y;
         p.y = (x_350 - 2);
       }
-      const bool x_354 = (d >= 0);
-      x_360_phi = x_354;
+      const int x_353 = d;
+      const bool x_354 = (x_353 >= 0);
+      x_360 = x_354;
       if (x_354) {
         const int x_358 = p.x;
         x_359 = (x_358 < 14);
-        x_360_phi = x_359;
+        x_360 = x_359;
       }
-      const bool x_360 = x_360_phi;
-      x_373_phi = x_360;
+      x_373 = x_360;
       if (x_360) {
         const int x_364 = p.x;
         const int x_367 = p.y;
         const int x_371 = map[((x_364 + 2) + (x_367 * 16))];
         x_372 = (x_371 == 0);
-        x_373_phi = x_372;
+        x_373 = x_372;
       }
-      if (x_373_phi) {
-        d = (d - 1);
+      if (x_373) {
+        const int x_376 = d;
+        d = (x_376 - 1);
         const int x_379 = p.x;
         const int x_381 = p.y;
         map[(x_379 + (x_381 * 16))] = 1;
@@ -271,24 +317,25 @@
         const int x_402 = p.x;
         p.x = (x_402 + 2);
       }
-      const bool x_406 = (d >= 0);
-      x_412_phi = x_406;
+      const int x_405 = d;
+      const bool x_406 = (x_405 >= 0);
+      x_412 = x_406;
       if (x_406) {
         const int x_410 = p.y;
         x_411 = (x_410 < 14);
-        x_412_phi = x_411;
+        x_412 = x_411;
       }
-      const bool x_412 = x_412_phi;
-      x_425_phi = x_412;
+      x_425 = x_412;
       if (x_412) {
         const int x_416 = p.x;
         const int x_418 = p.y;
         const int x_423 = map[(x_416 + ((x_418 + 2) * 16))];
         x_424 = (x_423 == 0);
-        x_425_phi = x_424;
+        x_425 = x_424;
       }
-      if (x_425_phi) {
-        d = (d - 1);
+      if (x_425) {
+        const int x_428 = d;
+        d = (x_428 - 1);
         const int x_431 = p.x;
         const int x_433 = p.y;
         map[(x_431 + (x_433 * 16))] = 1;
@@ -310,10 +357,8 @@
       return;
     }
     {
-      if (canwalk) {
-      } else {
-        break;
-      }
+      const bool x_468 = canwalk;
+      if (!(x_468)) { break; }
     }
   }
   x_GLF_color = float4(0.0f, 0.0f, 0.0f, 1.0f);
@@ -333,8 +378,8 @@
 main_out main_inner(float4 gl_FragCoord_param) {
   gl_FragCoord = gl_FragCoord_param;
   main_1();
-  const main_out tint_symbol_7 = {x_GLF_color};
-  return tint_symbol_7;
+  const main_out tint_symbol_6 = {x_GLF_color};
+  return tint_symbol_6;
 }
 
 tint_symbol_2 main(tint_symbol_1 tint_symbol) {
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.fxc.hlsl
index 5d3380f..9ad6746 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.fxc.hlsl
@@ -1,4 +1,4 @@
-SKIP: FAILED - TIMEOUT
+SKIP: FAILED
 
 static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
 cbuffer cbuffer_x_7 : register(b0, space0) {
@@ -7,6 +7,15 @@
 static int map[256] = (int[256])0;
 static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
 
+int tint_mod(int lhs, int rhs) {
+  const int rhs_or_one = (((rhs == 0) | ((lhs == -2147483648) & (rhs == -1))) ? 1 : rhs);
+  if (any(((uint((lhs | rhs_or_one)) & 2147483648u) != 0u))) {
+    return (lhs - ((lhs / rhs_or_one) * rhs_or_one));
+  } else {
+    return (lhs % rhs_or_one);
+  }
+}
+
 void main_1() {
   float2 pos = float2(0.0f, 0.0f);
   int2 ipos = int2(0, 0);
@@ -24,9 +33,17 @@
   const float x_69 = pos.y;
   ipos = int2(int((x_65 * 16.0f)), int((x_69 * 16.0f)));
   i = 0;
-  {
-    for(; (i < 256); i = (i + 1)) {
-      map[i] = 0;
+  while (true) {
+    const int x_77 = i;
+    if ((x_77 < 256)) {
+    } else {
+      break;
+    }
+    const int x_80 = i;
+    map[x_80] = 0;
+    {
+      const int x_82 = i;
+      i = (x_82 + 1);
     }
   }
   p = (0).xx;
@@ -41,7 +58,8 @@
     bool x_125_phi = false;
     bool x_145_phi = false;
     bool x_165_phi = false;
-    v = (v + 1);
+    const int x_88 = v;
+    v = (x_88 + 1);
     directions = 0;
     const int x_91 = p.x;
     const bool x_92 = (x_91 > 0);
@@ -53,8 +71,10 @@
       x_104 = (x_103 == 0);
       x_105_phi = x_104;
     }
-    if (x_105_phi) {
-      directions = (directions + 1);
+    const bool x_105 = x_105_phi;
+    if (x_105) {
+      const int x_108 = directions;
+      directions = (x_108 + 1);
     }
     const int x_111 = p.y;
     const bool x_112 = (x_111 > 0);
@@ -66,8 +86,10 @@
       x_124 = (x_123 == 0);
       x_125_phi = x_124;
     }
-    if (x_125_phi) {
-      directions = (directions + 1);
+    const bool x_125 = x_125_phi;
+    if (x_125) {
+      const int x_128 = directions;
+      directions = (x_128 + 1);
     }
     const int x_131 = p.x;
     const bool x_132 = (x_131 < 14);
@@ -79,8 +101,10 @@
       x_144 = (x_143 == 0);
       x_145_phi = x_144;
     }
-    if (x_145_phi) {
-      directions = (directions + 1);
+    const bool x_145 = x_145_phi;
+    if (x_145) {
+      const int x_148 = directions;
+      directions = (x_148 + 1);
     }
     const int x_151 = p.y;
     const bool x_152 = (x_151 < 14);
@@ -92,8 +116,10 @@
       x_164 = (x_163 == 0);
       x_165_phi = x_164;
     }
-    if (x_165_phi) {
-      directions = (directions + 1);
+    const bool x_165 = x_165_phi;
+    if (x_165) {
+      const int x_168 = directions;
+      directions = (x_168 + 1);
     }
     bool x_229 = false;
     bool x_242 = false;
@@ -121,31 +147,55 @@
     bool x_373_phi = false;
     bool x_412_phi = false;
     bool x_425_phi = false;
-    if ((directions == 0)) {
+    const int x_170 = directions;
+    if ((x_170 == 0)) {
       canwalk = false;
       i = 0;
-      {
-        for(; (i < 8); i = (i + 1)) {
-          j = 0;
-          {
-            for(; (j < 8); j = (j + 1)) {
-              const int x_196 = map[((j * 2) + ((i * 2) * 16))];
-              if ((x_196 == 0)) {
-                p.x = (j * 2);
-                p.y = (i * 2);
-                canwalk = true;
-              }
-            }
+      while (true) {
+        const int x_179 = i;
+        if ((x_179 < 8)) {
+        } else {
+          break;
+        }
+        j = 0;
+        while (true) {
+          const int x_186 = j;
+          if ((x_186 < 8)) {
+          } else {
+            break;
           }
+          const int x_189 = j;
+          const int x_191 = i;
+          const int x_196 = map[((x_189 * 2) + ((x_191 * 2) * 16))];
+          if ((x_196 == 0)) {
+            const int x_200 = j;
+            p.x = (x_200 * 2);
+            const int x_203 = i;
+            p.y = (x_203 * 2);
+            canwalk = true;
+          }
+          {
+            const int x_206 = j;
+            j = (x_206 + 1);
+          }
+        }
+        {
+          const int x_208 = i;
+          i = (x_208 + 1);
         }
       }
       const int x_211 = p.x;
       const int x_213 = p.y;
       map[(x_211 + (x_213 * 16))] = 1;
     } else {
-      d = (v % (directions == 0 ? 1 : directions));
-      v = (v + directions);
-      const bool x_224 = (d >= 0);
+      const int x_217 = v;
+      const int x_218 = directions;
+      d = tint_mod(x_217, x_218);
+      const int x_220 = directions;
+      const int x_221 = v;
+      v = (x_221 + x_220);
+      const int x_223 = d;
+      const bool x_224 = (x_223 >= 0);
       x_230_phi = x_224;
       if (x_224) {
         const int x_228 = p.x;
@@ -161,8 +211,10 @@
         x_242 = (x_241 == 0);
         x_243_phi = x_242;
       }
-      if (x_243_phi) {
-        d = (d - 1);
+      const bool x_243 = x_243_phi;
+      if (x_243) {
+        const int x_246 = d;
+        d = (x_246 - 1);
         const int x_249 = p.x;
         const int x_251 = p.y;
         map[(x_249 + (x_251 * 16))] = 1;
@@ -175,7 +227,8 @@
         const int x_272 = p.x;
         p.x = (x_272 - 2);
       }
-      const bool x_276 = (d >= 0);
+      const int x_275 = d;
+      const bool x_276 = (x_275 >= 0);
       x_282_phi = x_276;
       if (x_276) {
         const int x_280 = p.y;
@@ -198,19 +251,20 @@
         x_296 = 0;
         x_297_phi = x_296;
       }
-      const int x_299 = ((x_297_phi - 2) * 16);
+      const int x_297 = x_297_phi;
+      const int x_299 = ((x_297 - 2) * 16);
       if (x_282) {
         x_303 = map;
         x_305_phi = x_303;
       } else {
-        const int tint_symbol_4[256] = (int[256])0;
-        x_304 = tint_symbol_4;
+        const int tint_symbol_3[256] = (int[256])0;
+        x_304 = tint_symbol_3;
         x_305_phi = x_304;
       }
       const int x_305[256] = x_305_phi;
       if (x_282) {
-        const int tint_symbol_5[256] = (int[256])0;
-        map = tint_symbol_5;
+        const int tint_symbol_4[256] = (int[256])0;
+        map = tint_symbol_4;
       }
       if (x_282) {
         map = x_305;
@@ -222,9 +276,11 @@
         x_316 = 0;
         x_317_phi = x_316;
       }
-      const bool x_318 = (x_317_phi == 0);
+      const int x_317 = x_317_phi;
+      const bool x_318 = (x_317 == 0);
       if ((x_282 ? x_318 : x_282)) {
-        d = (d - 1);
+        const int x_323 = d;
+        d = (x_323 - 1);
         const int x_326 = p.x;
         const int x_328 = p.y;
         map[(x_326 + (x_328 * 16))] = 1;
@@ -234,14 +290,15 @@
         const int x_341 = p.x;
         const int x_343 = p.y;
         const int x_345[256] = map;
-        const int tint_symbol_6[256] = (int[256])0;
-        map = tint_symbol_6;
+        const int tint_symbol_5[256] = (int[256])0;
+        map = tint_symbol_5;
         map = x_345;
         map[(x_341 + ((x_343 - 2) * 16))] = 1;
         const int x_350 = p.y;
         p.y = (x_350 - 2);
       }
-      const bool x_354 = (d >= 0);
+      const int x_353 = d;
+      const bool x_354 = (x_353 >= 0);
       x_360_phi = x_354;
       if (x_354) {
         const int x_358 = p.x;
@@ -257,8 +314,10 @@
         x_372 = (x_371 == 0);
         x_373_phi = x_372;
       }
-      if (x_373_phi) {
-        d = (d - 1);
+      const bool x_373 = x_373_phi;
+      if (x_373) {
+        const int x_376 = d;
+        d = (x_376 - 1);
         const int x_379 = p.x;
         const int x_381 = p.y;
         map[(x_379 + (x_381 * 16))] = 1;
@@ -271,7 +330,8 @@
         const int x_402 = p.x;
         p.x = (x_402 + 2);
       }
-      const bool x_406 = (d >= 0);
+      const int x_405 = d;
+      const bool x_406 = (x_405 >= 0);
       x_412_phi = x_406;
       if (x_406) {
         const int x_410 = p.y;
@@ -287,8 +347,10 @@
         x_424 = (x_423 == 0);
         x_425_phi = x_424;
       }
-      if (x_425_phi) {
-        d = (d - 1);
+      const bool x_425 = x_425_phi;
+      if (x_425) {
+        const int x_428 = d;
+        d = (x_428 - 1);
         const int x_431 = p.x;
         const int x_433 = p.y;
         map[(x_431 + (x_433 * 16))] = 1;
@@ -310,10 +372,8 @@
       return;
     }
     {
-      if (canwalk) {
-      } else {
-        break;
-      }
+      const bool x_468 = canwalk;
+      if (!(x_468)) { break; }
     }
   }
   x_GLF_color = float4(0.0f, 0.0f, 0.0f, 1.0f);
@@ -333,8 +393,8 @@
 main_out main_inner(float4 gl_FragCoord_param) {
   gl_FragCoord = gl_FragCoord_param;
   main_1();
-  const main_out tint_symbol_7 = {x_GLF_color};
-  return tint_symbol_7;
+  const main_out tint_symbol_6 = {x_GLF_color};
+  return tint_symbol_6;
 }
 
 tint_symbol_2 main(tint_symbol_1 tint_symbol) {
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.dxc.hlsl
index faaa468..5ab67d0 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.dxc.hlsl
@@ -18,9 +18,11 @@
       } else {
         break;
       }
-      const int x_10 = donor_replacementGLF_dead6tree[GLF_dead6index];
+      const int x_9 = GLF_dead6index;
+      const int x_10 = donor_replacementGLF_dead6tree[x_9];
       GLF_dead6currentNode = x_10;
-      GLF_dead6index = GLF_dead6currentNode;
+      const int x_11 = GLF_dead6currentNode;
+      GLF_dead6index = x_11;
     }
   }
   return;
@@ -35,8 +37,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_2 = {x_GLF_color};
-  return tint_symbol_2;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -46,10 +48,10 @@
   return wrapper_result;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
-shader.hlsl:40: error: Loop must have break.
+shader.hlsl:42: error: Loop must have break.
 Validation failed.
 
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.fxc.hlsl
index c4470a2..6a7b432 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.fxc.hlsl
@@ -18,9 +18,11 @@
       } else {
         break;
       }
-      const int x_10 = donor_replacementGLF_dead6tree[GLF_dead6index];
+      const int x_9 = GLF_dead6index;
+      const int x_10 = donor_replacementGLF_dead6tree[x_9];
       GLF_dead6currentNode = x_10;
-      GLF_dead6index = GLF_dead6currentNode;
+      const int x_11 = GLF_dead6currentNode;
+      GLF_dead6index = x_11;
     }
   }
   return;
@@ -35,8 +37,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_2 = {x_GLF_color};
-  return tint_symbol_2;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -45,6 +47,3 @@
   wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
   return wrapper_result;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x00000263B76FE810(14,19-22): 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.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.dxc.hlsl
index faaa468..5ab67d0 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.dxc.hlsl
@@ -18,9 +18,11 @@
       } else {
         break;
       }
-      const int x_10 = donor_replacementGLF_dead6tree[GLF_dead6index];
+      const int x_9 = GLF_dead6index;
+      const int x_10 = donor_replacementGLF_dead6tree[x_9];
       GLF_dead6currentNode = x_10;
-      GLF_dead6index = GLF_dead6currentNode;
+      const int x_11 = GLF_dead6currentNode;
+      GLF_dead6index = x_11;
     }
   }
   return;
@@ -35,8 +37,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_2 = {x_GLF_color};
-  return tint_symbol_2;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -46,10 +48,10 @@
   return wrapper_result;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
-shader.hlsl:40: error: Loop must have break.
+shader.hlsl:42: error: Loop must have break.
 Validation failed.
 
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.fxc.hlsl
index ff28b8e..6a7b432 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.fxc.hlsl
@@ -18,9 +18,11 @@
       } else {
         break;
       }
-      const int x_10 = donor_replacementGLF_dead6tree[GLF_dead6index];
+      const int x_9 = GLF_dead6index;
+      const int x_10 = donor_replacementGLF_dead6tree[x_9];
       GLF_dead6currentNode = x_10;
-      GLF_dead6index = GLF_dead6currentNode;
+      const int x_11 = GLF_dead6currentNode;
+      GLF_dead6index = x_11;
     }
   }
   return;
@@ -35,8 +37,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_2 = {x_GLF_color};
-  return tint_symbol_2;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -45,6 +47,3 @@
   wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
   return wrapper_result;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x0000028D946187E0(14,19-22): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.dxc.hlsl
index ada6480..2db19ba 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.dxc.hlsl
@@ -13,10 +13,7 @@
   if ((x_30 > x_32)) {
     while (true) {
       {
-        if (false) {
-        } else {
-          break;
-        }
+        if (true) { break; }
       }
     }
     m = 1;
@@ -40,8 +37,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_2 = {x_GLF_color};
-  return tint_symbol_2;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -51,10 +48,10 @@
   return wrapper_result;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
-shader.hlsl:45: error: Loop must have break.
+shader.hlsl:42: error: Loop must have break.
 Validation failed.
 
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.fxc.hlsl
index df354e0..095fd81 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.fxc.hlsl
@@ -13,10 +13,7 @@
   if ((x_30 > x_32)) {
     while (true) {
       {
-        if (false) {
-        } else {
-          break;
-        }
+        if (true) { break; }
       }
     }
     m = 1;
@@ -40,8 +37,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_2 = {x_GLF_color};
-  return tint_symbol_2;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -50,8 +47,3 @@
   wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
   return wrapper_result;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x000001487CF231C0(12,12-23): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
-C:\src\dawn\test\tint\Shader@0x000001487CF231C0(12,12-23): warning X3557: loop doesn't seem to do anything, consider removing [loop]
-C:\src\dawn\test\tint\Shader@0x000001487CF231C0(21,19-22): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.dxc.hlsl
index ada6480..2db19ba 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.dxc.hlsl
@@ -13,10 +13,7 @@
   if ((x_30 > x_32)) {
     while (true) {
       {
-        if (false) {
-        } else {
-          break;
-        }
+        if (true) { break; }
       }
     }
     m = 1;
@@ -40,8 +37,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_2 = {x_GLF_color};
-  return tint_symbol_2;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -51,10 +48,10 @@
   return wrapper_result;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
-shader.hlsl:45: error: Loop must have break.
+shader.hlsl:42: error: Loop must have break.
 Validation failed.
 
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.fxc.hlsl
index 6d8b505..095fd81 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.fxc.hlsl
@@ -13,10 +13,7 @@
   if ((x_30 > x_32)) {
     while (true) {
       {
-        if (false) {
-        } else {
-          break;
-        }
+        if (true) { break; }
       }
     }
     m = 1;
@@ -40,8 +37,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_2 = {x_GLF_color};
-  return tint_symbol_2;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -50,8 +47,3 @@
   wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
   return wrapper_result;
 }
-FXC validation failure:
-C:\src\dawn\test\tint\Shader@0x0000024C845840A0(12,12-23): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
-C:\src\dawn\test\tint\Shader@0x0000024C845840A0(12,12-23): warning X3557: loop doesn't seem to do anything, consider removing [loop]
-C:\src\dawn\test\tint\Shader@0x0000024C845840A0(21,19-22): error X3696: infinite loop detected - loop never exits
-
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.dxc.hlsl
index bc6fb26..b9e5fb3 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.dxc.hlsl
@@ -46,35 +46,63 @@
       x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
       break;
     }
-    ll_1 = (ll_1 + 1);
+    const int x_20 = ll_1;
+    ll_1 = (x_20 + 1);
     const int x_22 = asint(x_9[0].x);
     z = x_22;
     ll_2 = 0;
     ctr = 0;
-    {
-      for(; (ctr < 1); ctr = (ctr + 1)) {
-        const int x_24 = ll_2;
-        const int x_25 = asint(x_9[0].x);
-        if ((x_24 >= x_25)) {
+    while (true) {
+      const int x_23 = ctr;
+      if ((x_23 < 1)) {
+      } else {
+        break;
+      }
+      const int x_24 = ll_2;
+      const int x_25 = asint(x_9[0].x);
+      if ((x_24 >= x_25)) {
+        break;
+      }
+      const int x_26 = ll_2;
+      ll_2 = (x_26 + 1);
+      const float4x3 x_98 = m43;
+      tempm43 = x_98;
+      ll_3 = 0;
+      c = 0;
+      while (true) {
+        const int x_28 = z;
+        if ((1 < x_28)) {
+        } else {
           break;
         }
-        ll_2 = (ll_2 + 1);
-        tempm43 = m43;
-        ll_3 = 0;
-        c = 0;
+        d = 0;
+        const int x_29 = c;
+        const int x_30 = c;
+        const int x_31 = c;
+        const int x_32 = d;
+        const int x_33 = d;
+        const int x_34 = d;
+        set_scalar_float4x3(tempm43, (((x_29 >= 0) & (x_30 < 4)) ? x_31 : 0), (((x_32 >= 0) & (x_33 < 3)) ? x_34 : 0), 1.0f);
         {
-          for(; (1 < z); c = (c + 1)) {
-            d = 0;
-            set_scalar_float4x3(tempm43, (((d >= 0) & (d < 3)) ? d : 0), (((c >= 0) & (c < 4)) ? c : 0), 1.0f);
-          }
+          const int x_35 = c;
+          c = (x_35 + 1);
         }
-        const int x_117 = (((idx >= 0) & (idx < 9)) ? idx : 0);
-        const float x_119 = m43[ctr].y;
-        const float x_121 = GLF_live6sums[x_117];
-        GLF_live6sums[x_117] = (x_121 + x_119);
+      }
+      const int x_37 = idx;
+      const int x_38 = idx;
+      const int x_39 = idx;
+      const int x_117 = (((x_37 >= 0) & (x_38 < 9)) ? x_39 : 0);
+      const int x_40 = ctr;
+      const float x_119 = m43[x_40].y;
+      const float x_121 = GLF_live6sums[x_117];
+      GLF_live6sums[x_117] = (x_121 + x_119);
+      {
+        const int x_41 = ctr;
+        ctr = (x_41 + 1);
       }
     }
-    idx = (idx + 1);
+    const int x_43 = idx;
+    idx = (x_43 + 1);
   }
   return;
 }
@@ -88,8 +116,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_2 = {x_GLF_color};
-  return tint_symbol_2;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -99,10 +127,10 @@
   return wrapper_result;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
-shader.hlsl:93: error: Loop must have break.
+shader.hlsl:121: error: Loop must have break.
 Validation failed.
 
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.dxc.hlsl
index bc6fb26..b9e5fb3 100755
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.dxc.hlsl
@@ -46,35 +46,63 @@
       x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
       break;
     }
-    ll_1 = (ll_1 + 1);
+    const int x_20 = ll_1;
+    ll_1 = (x_20 + 1);
     const int x_22 = asint(x_9[0].x);
     z = x_22;
     ll_2 = 0;
     ctr = 0;
-    {
-      for(; (ctr < 1); ctr = (ctr + 1)) {
-        const int x_24 = ll_2;
-        const int x_25 = asint(x_9[0].x);
-        if ((x_24 >= x_25)) {
+    while (true) {
+      const int x_23 = ctr;
+      if ((x_23 < 1)) {
+      } else {
+        break;
+      }
+      const int x_24 = ll_2;
+      const int x_25 = asint(x_9[0].x);
+      if ((x_24 >= x_25)) {
+        break;
+      }
+      const int x_26 = ll_2;
+      ll_2 = (x_26 + 1);
+      const float4x3 x_98 = m43;
+      tempm43 = x_98;
+      ll_3 = 0;
+      c = 0;
+      while (true) {
+        const int x_28 = z;
+        if ((1 < x_28)) {
+        } else {
           break;
         }
-        ll_2 = (ll_2 + 1);
-        tempm43 = m43;
-        ll_3 = 0;
-        c = 0;
+        d = 0;
+        const int x_29 = c;
+        const int x_30 = c;
+        const int x_31 = c;
+        const int x_32 = d;
+        const int x_33 = d;
+        const int x_34 = d;
+        set_scalar_float4x3(tempm43, (((x_29 >= 0) & (x_30 < 4)) ? x_31 : 0), (((x_32 >= 0) & (x_33 < 3)) ? x_34 : 0), 1.0f);
         {
-          for(; (1 < z); c = (c + 1)) {
-            d = 0;
-            set_scalar_float4x3(tempm43, (((d >= 0) & (d < 3)) ? d : 0), (((c >= 0) & (c < 4)) ? c : 0), 1.0f);
-          }
+          const int x_35 = c;
+          c = (x_35 + 1);
         }
-        const int x_117 = (((idx >= 0) & (idx < 9)) ? idx : 0);
-        const float x_119 = m43[ctr].y;
-        const float x_121 = GLF_live6sums[x_117];
-        GLF_live6sums[x_117] = (x_121 + x_119);
+      }
+      const int x_37 = idx;
+      const int x_38 = idx;
+      const int x_39 = idx;
+      const int x_117 = (((x_37 >= 0) & (x_38 < 9)) ? x_39 : 0);
+      const int x_40 = ctr;
+      const float x_119 = m43[x_40].y;
+      const float x_121 = GLF_live6sums[x_117];
+      GLF_live6sums[x_117] = (x_121 + x_119);
+      {
+        const int x_41 = ctr;
+        ctr = (x_41 + 1);
       }
     }
-    idx = (idx + 1);
+    const int x_43 = idx;
+    idx = (x_43 + 1);
   }
   return;
 }
@@ -88,8 +116,8 @@
 
 main_out main_inner() {
   main_1();
-  const main_out tint_symbol_2 = {x_GLF_color};
-  return tint_symbol_2;
+  const main_out tint_symbol_1 = {x_GLF_color};
+  return tint_symbol_1;
 }
 
 tint_symbol main() {
@@ -99,10 +127,10 @@
   return wrapper_result;
 }
 DXC validation failure:
-warning: DXIL.dll not found.  Resulting DXIL will not be signed for use in release environments.
+warning: DXIL signing library (dxil.dll,libdxil.so) not found.  Resulting DXIL will not be signed for use in release environments.
 
 error: validation errors
-shader.hlsl:93: error: Loop must have break.
+shader.hlsl:121: error: Loop must have break.
 Validation failed.