[tint] Rename array to runtime_array in intrinsics

We need to add fixed-sized arrays to the intrinsics file for some of
the new subgroup_matrix builtins, but the intrinsics parser does not
support having two different template parameterizations of the same
type.

Rename `array` to `runtime_array` and then add logic to emit it as
`array` when generating tests.

Bug: 348702031
Change-Id: I78948c3576935d726f2580b34bd22d9130446a46
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/224054
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: James Price <jrprice@google.com>
diff --git a/src/tint/cmd/fuzz/wgsl/dictionary.txt b/src/tint/cmd/fuzz/wgsl/dictionary.txt
index 84b8ef4..c7f1de2 100644
--- a/src/tint/cmd/fuzz/wgsl/dictionary.txt
+++ b/src/tint/cmd/fuzz/wgsl/dictionary.txt
@@ -363,6 +363,7 @@
 "rgba8unorm"
 "right"
 "round"
+"runtime_array"
 "sample"
 "sample_index"
 "sample_mask"
diff --git a/src/tint/lang/core/core.def b/src/tint/lang/core/core.def
index c1a3253..1f7ae93 100644
--- a/src/tint/lang/core/core.def
+++ b/src/tint/lang/core/core.def
@@ -282,7 +282,7 @@
 @display("mat{N}x{M}<{T}>") type mat<N: num, M: num, T>
 type ptr<S: address_space, T, A: access>
 type atomic<T>
-type array<T>
+@display("array<{T}>") type runtime_array<T>
 type sampler
 type sampler_comparison
 type texture_1d<T>
@@ -404,7 +404,7 @@
 @must_use @const implicit(N: num) fn all(vec<N, bool>) -> bool
 @must_use @const fn any(bool) -> bool
 @must_use @const implicit(N: num) fn any(vec<N, bool>) -> bool
-@must_use implicit(T, A: access) fn arrayLength(ptr<storage, array<T>, A>) -> u32
+@must_use implicit(T, A: access) fn arrayLength(ptr<storage, runtime_array<T>, A>) -> u32
 @must_use @const implicit(T: f32_f16) fn asin(@test_value(0.479425538604) T) -> T
 @must_use @const implicit(N: num, T: f32_f16) fn asin(@test_value(0.479425538604) vec<N, T>) -> vec<N, T>
 @must_use @const implicit(T: f32_f16) fn asinh(T) -> T
diff --git a/src/tint/lang/core/intrinsic/data.cc b/src/tint/lang/core/intrinsic/data.cc
index ad9a6d3..3e2713c 100644
--- a/src/tint/lang/core/intrinsic/data.cc
+++ b/src/tint/lang/core/intrinsic/data.cc
@@ -520,22 +520,22 @@
 };
 
 
-/// TypeMatcher for 'type array'
-constexpr TypeMatcher kArrayMatcher {
+/// TypeMatcher for 'type runtime_array'
+constexpr TypeMatcher kRuntimeArrayMatcher {
 /* match */ [](MatchState& state, const Type* ty) -> const Type* {
   const Type* T = nullptr;
-    if (!MatchArray(state, ty, T)) {
+    if (!MatchRuntimeArray(state, ty, T)) {
       return nullptr;
     }
     T = state.Type(T);
     if (T == nullptr) {
       return nullptr;
     }
-    return BuildArray(state, ty, T);
+    return BuildRuntimeArray(state, ty, T);
   },
 /* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
   state->PrintType(T);
-    out << style::Type("array", "<", T, ">");
+    out << style::Type("array<", T, ">");
   }
 };
 
@@ -1597,7 +1597,7 @@
   /* [24] */ kMatMatcher,
   /* [25] */ kPtrMatcher,
   /* [26] */ kAtomicMatcher,
-  /* [27] */ kArrayMatcher,
+  /* [27] */ kRuntimeArrayMatcher,
   /* [28] */ kSamplerMatcher,
   /* [29] */ kSamplerComparisonMatcher,
   /* [30] */ kTexture1DMatcher,
@@ -10023,7 +10023,7 @@
   },
   {
     /* [5] */
-    /* fn arrayLength[T, A : access](ptr<storage, array<T>, A>) -> u32 */
+    /* fn arrayLength[T, A : access](ptr<storage, runtime_array<T>, A>) -> u32 */
     /* num overloads */ 1,
     /* overloads */ OverloadIndex(443),
   },
diff --git a/src/tint/lang/core/intrinsic/type_matchers.h b/src/tint/lang/core/intrinsic/type_matchers.h
index 19307ae..afdb733 100644
--- a/src/tint/lang/core/intrinsic/type_matchers.h
+++ b/src/tint/lang/core/intrinsic/type_matchers.h
@@ -299,7 +299,7 @@
                                        A.Value(), B.Value());
 }
 
-inline bool MatchArray(intrinsic::MatchState&, const type::Type* ty, const type::Type*& T) {
+inline bool MatchRuntimeArray(intrinsic::MatchState&, const type::Type* ty, const type::Type*& T) {
     if (ty->Is<intrinsic::Any>()) {
         T = ty;
         return true;
@@ -314,9 +314,9 @@
     return false;
 }
 
-inline const type::Array* BuildArray(intrinsic::MatchState& state,
-                                     const type::Type*,
-                                     const type::Type* el) {
+inline const type::Array* BuildRuntimeArray(intrinsic::MatchState& state,
+                                            const type::Type*,
+                                            const type::Type* el) {
     return state.types.Get<type::Array>(el,
                                         /* count */ state.types.Get<type::RuntimeArrayCount>(),
                                         /* align */ 0u,
diff --git a/src/tint/lang/glsl/glsl.def b/src/tint/lang/glsl/glsl.def
index 75c8c20..46d5efa 100644
--- a/src/tint/lang/glsl/glsl.def
+++ b/src/tint/lang/glsl/glsl.def
@@ -56,7 +56,7 @@
 type vec4<T>
 @display("vec{N}<{T}>")     type vec<N: num, T>
 
-type array<T>
+@display("array<{T}>") type runtime_array<T>
 
 type texture_2d<T>
 type texture_2d_array<T>
@@ -129,7 +129,7 @@
 // Builtin Functions                                                          //
 ////////////////////////////////////////////////////////////////////////////////
 
-@member_function @must_use implicit(T, A: access) fn length(ptr<storage, array<T>, A>) -> i32
+@member_function @must_use implicit(T, A: access) fn length(ptr<storage, runtime_array<T>, A>) -> i32
 
 @stage("compute") fn barrier()
 @stage("compute") fn memoryBarrierBuffer()
diff --git a/src/tint/lang/glsl/intrinsic/data.cc b/src/tint/lang/glsl/intrinsic/data.cc
index 5fc4728..8c43389 100644
--- a/src/tint/lang/glsl/intrinsic/data.cc
+++ b/src/tint/lang/glsl/intrinsic/data.cc
@@ -282,22 +282,22 @@
 };
 
 
-/// TypeMatcher for 'type array'
-constexpr TypeMatcher kArrayMatcher {
+/// TypeMatcher for 'type runtime_array'
+constexpr TypeMatcher kRuntimeArrayMatcher {
 /* match */ [](MatchState& state, const Type* ty) -> const Type* {
   const Type* T = nullptr;
-    if (!MatchArray(state, ty, T)) {
+    if (!MatchRuntimeArray(state, ty, T)) {
       return nullptr;
     }
     T = state.Type(T);
     if (T == nullptr) {
       return nullptr;
     }
-    return BuildArray(state, ty, T);
+    return BuildRuntimeArray(state, ty, T);
   },
 /* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
   state->PrintType(T);
-    out << style::Type("array", "<", T, ">");
+    out << style::Type("array<", T, ">");
   }
 };
 
@@ -909,7 +909,7 @@
   /* [10] */ kVec3Matcher,
   /* [11] */ kVec4Matcher,
   /* [12] */ kVecMatcher,
-  /* [13] */ kArrayMatcher,
+  /* [13] */ kRuntimeArrayMatcher,
   /* [14] */ kTexture2DMatcher,
   /* [15] */ kTexture2DArrayMatcher,
   /* [16] */ kTexture3DMatcher,
@@ -4011,7 +4011,7 @@
 constexpr IntrinsicInfo kBuiltins[] = {
   {
     /* [0] */
-    /* fn length[T, A : access](ptr<storage, array<T>, A>) -> i32 */
+    /* fn length[T, A : access](ptr<storage, runtime_array<T>, A>) -> i32 */
     /* num overloads */ 1,
     /* overloads */ OverloadIndex(123),
   },
diff --git a/src/tint/lang/wgsl/intrinsic/data.cc b/src/tint/lang/wgsl/intrinsic/data.cc
index fad3d8c..cde2435 100644
--- a/src/tint/lang/wgsl/intrinsic/data.cc
+++ b/src/tint/lang/wgsl/intrinsic/data.cc
@@ -605,22 +605,22 @@
 };
 
 
-/// TypeMatcher for 'type array'
-constexpr TypeMatcher kArrayMatcher {
+/// TypeMatcher for 'type runtime_array'
+constexpr TypeMatcher kRuntimeArrayMatcher {
 /* match */ [](MatchState& state, const Type* ty) -> const Type* {
   const Type* T = nullptr;
-    if (!MatchArray(state, ty, T)) {
+    if (!MatchRuntimeArray(state, ty, T)) {
       return nullptr;
     }
     T = state.Type(T);
     if (T == nullptr) {
       return nullptr;
     }
-    return BuildArray(state, ty, T);
+    return BuildRuntimeArray(state, ty, T);
   },
 /* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
   state->PrintType(T);
-    out << style::Type("array", "<", T, ">");
+    out << style::Type("array<", T, ">");
   }
 };
 
@@ -1829,7 +1829,7 @@
   /* [27] */ kPtrMatcher,
   /* [28] */ kRefMatcher,
   /* [29] */ kAtomicMatcher,
-  /* [30] */ kArrayMatcher,
+  /* [30] */ kRuntimeArrayMatcher,
   /* [31] */ kSamplerMatcher,
   /* [32] */ kSamplerComparisonMatcher,
   /* [33] */ kTexture1DMatcher,
@@ -11312,8 +11312,8 @@
   },
   {
     /* [5] */
-    /* fn arrayLength[T, R : read](ptr<storage, array<T>, R>) -> u32 */
-    /* fn arrayLength[T, W : writable](ptr<storage, array<T>, W>) -> u32 */
+    /* fn arrayLength[T, R : read](ptr<storage, runtime_array<T>, R>) -> u32 */
+    /* fn arrayLength[T, W : writable](ptr<storage, runtime_array<T>, W>) -> u32 */
     /* num overloads */ 2,
     /* overloads */ OverloadIndex(379),
   },
diff --git a/src/tint/lang/wgsl/wgsl.def b/src/tint/lang/wgsl/wgsl.def
index 57d8f5e..4c83288 100644
--- a/src/tint/lang/wgsl/wgsl.def
+++ b/src/tint/lang/wgsl/wgsl.def
@@ -147,7 +147,7 @@
 type ptr<S: address_space, T, A: access>
 type ref<S: address_space, T, A: access>
 type atomic<T>
-type array<T>
+@display("array<{T}>") type runtime_array<T>
 type sampler
 type sampler_comparison
 type texture_1d<T>
@@ -277,8 +277,8 @@
 @must_use @const implicit(N: num) fn all(vec<N, bool>) -> bool
 @must_use @const fn any(bool) -> bool
 @must_use @const implicit(N: num) fn any(vec<N, bool>) -> bool
-@must_use implicit(T, R: read) fn arrayLength(ptr<storage, array<T>, R>) -> u32
-@must_use @stage("fragment", "compute") implicit(T, W: writable) fn arrayLength(ptr<storage, array<T>, W>) -> u32
+@must_use implicit(T, R: read) fn arrayLength(ptr<storage, runtime_array<T>, R>) -> u32
+@must_use @stage("fragment", "compute") implicit(T, W: writable) fn arrayLength(ptr<storage, runtime_array<T>, W>) -> u32
 @must_use @const implicit(T: fa_f32_f16) fn asin(@test_value(0.479425538604) T) -> T
 @must_use @const implicit(N: num, T: fa_f32_f16) fn asin(@test_value(0.479425538604) vec<N, T>) -> vec<N, T>
 @must_use @const implicit(T: fa_f32_f16) fn asinh(T) -> T
diff --git a/test/tint/builtins/gen/gen.wgsl.tmpl b/test/tint/builtins/gen/gen.wgsl.tmpl
index 5acfb2e..fd5b9f9 100644
--- a/test/tint/builtins/gen/gen.wgsl.tmpl
+++ b/test/tint/builtins/gen/gen.wgsl.tmpl
@@ -350,6 +350,7 @@
 {{- /* ------------------------------------------------------------------ */ -}}
 {{-   $name := .Target.Name -}}
 {{-   if             eq $name "array"   -}}storage
+{{-   else if        eq $name "runtime_array"   -}}storage
 {{-   else if HasPrefix $name "texture" -}}handle
 {{-   else if HasPrefix $name "sampler" -}}handle
 {{-   else if HasPrefix $name "input_attachment" -}}handle
@@ -431,6 +432,7 @@
        name is exactly 'vec' and 'mat' and if not, then look for the prefix. */ -}}
 {{-     else if eq .Target.Name "vec"        -}}vec{{index .TemplateArguments 0}}<{{template "Type" (ElementType .)}}>
 {{-     else if eq .Target.Name "mat"        -}}mat{{index .TemplateArguments 0}}x{{index .TemplateArguments 1}}<{{template "Type" (ElementType .)}}>
+{{-     else if eq .Target.Name "runtime_array" -}}array<{{template "Type" (ElementType .)}}>
 {{-     else if HasPrefix .Target.Name "vec" -}}{{.Target.Name}}<{{template "Type" (ElementType .)}}>
 {{-     else if HasPrefix .Target.Name "mat" -}}{{.Target.Name}}<{{template "Type" (ElementType .)}}>
 {{-     else                                 -}}{{.Target.Name}}{{template "TemplateArguments" .TemplateArguments}}
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 2759460..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_1588cd() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_1588cd());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_1588cd() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_1588cd());
-}
-
-//
-// vertex_main
-//
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-
-struct vertex_main_outputs {
-  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
-  float4 VertexOutput_pos : SV_Position;
-};
-
-
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_1588cd() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-VertexOutput vertex_main_inner() {
-  VertexOutput v_1 = (VertexOutput)0;
-  v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_1588cd();
-  VertexOutput v_2 = v_1;
-  return v_2;
-}
-
-vertex_main_outputs vertex_main() {
-  VertexOutput v_3 = vertex_main_inner();
-  vertex_main_outputs v_4 = {v_3.prevent_dce, v_3.pos};
-  return v_4;
-}
-
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 2759460..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_1588cd() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_1588cd());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_1588cd() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_1588cd());
-}
-
-//
-// vertex_main
-//
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-
-struct vertex_main_outputs {
-  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
-  float4 VertexOutput_pos : SV_Position;
-};
-
-
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_1588cd() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-VertexOutput vertex_main_inner() {
-  VertexOutput v_1 = (VertexOutput)0;
-  v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_1588cd();
-  VertexOutput v_2 = v_1;
-  return v_2;
-}
-
-vertex_main_outputs vertex_main() {
-  VertexOutput v_3 = vertex_main_inner();
-  vertex_main_outputs v_4 = {v_3.prevent_dce, v_3.pos};
-  return v_4;
-}
-
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl
similarity index 90%
rename from test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl
index 3e228f6..ab4ddae 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2021 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -42,19 +42,19 @@
 };
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-// fn arrayLength(ptr<storage, array<u32>, read>) -> u32
-fn arrayLength_cfca0a() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<u32>, read>) -> u32
+fn arrayLength_1cf529() -> u32{
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_cfca0a();
+  prevent_dce = arrayLength_1cf529();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_cfca0a();
+  prevent_dce = arrayLength_1cf529();
 }
 
 struct VertexOutput {
@@ -66,6 +66,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_cfca0a();
+  out.prevent_dce = arrayLength_1cf529();
   return out;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.dxc.hlsl
similarity index 85%
copy from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.dxc.hlsl
index c638623..a6867f4 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_1cf529() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_1cf529()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_1cf529() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_1cf529()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_1cf529() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_1588cd();
+  tint_symbol.prevent_dce = arrayLength_1cf529();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.fxc.hlsl
similarity index 85%
copy from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.fxc.hlsl
index c638623..a6867f4 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_1cf529() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_1cf529()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_1cf529() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_1cf529()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_1cf529() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_1588cd();
+  tint_symbol.prevent_dce = arrayLength_1cf529();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.glsl
similarity index 86%
rename from test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.glsl
index 5a013be..853185a 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 buffer f_SB_RO_ssbo {
   uint arg_0[];
 } sb_ro;
-uint arrayLength_cfca0a() {
+uint arrayLength_1cf529() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_cfca0a();
+  v.inner = arrayLength_1cf529();
 }
 //
 // compute_main
@@ -33,13 +33,13 @@
 buffer SB_RO_1_ssbo {
   uint arg_0[];
 } sb_ro;
-uint arrayLength_cfca0a() {
+uint arrayLength_1cf529() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_cfca0a();
+  v.inner = arrayLength_1cf529();
 }
 //
 // vertex_main
@@ -57,14 +57,14 @@
   uint arg_0[];
 } sb_ro;
 layout(location = 0) flat out uint tint_interstage_location0;
-uint arrayLength_cfca0a() {
+uint arrayLength_1cf529() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 VertexOutput vertex_main_inner() {
   VertexOutput v = VertexOutput(vec4(0.0f), 0u);
   v.pos = vec4(0.0f);
-  v.prevent_dce = arrayLength_cfca0a();
+  v.prevent_dce = arrayLength_1cf529();
   return v;
 }
 void main() {
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.ir.dxc.hlsl
similarity index 83%
copy from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.ir.dxc.hlsl
index ccc8aa4..b8445c9 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_1cf529() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_1cf529());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_1cf529() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_1cf529());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_1cf529() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_a0f5ca();
+  v_1.prevent_dce = arrayLength_1cf529();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.ir.fxc.hlsl
similarity index 83%
copy from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.ir.fxc.hlsl
index ccc8aa4..b8445c9 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_1cf529() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_1cf529());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_1cf529() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_1cf529());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_1cf529() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_a0f5ca();
+  v_1.prevent_dce = arrayLength_1cf529();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.ir.msl
similarity index 92%
rename from test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.msl
rename to test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.ir.msl
index ee7406e..9c53b31 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_cfca0a(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_1cf529(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_cfca0a(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_1cf529(tint_module_vars);
 }
 //
 // compute_main
@@ -63,14 +63,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_cfca0a(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_1cf529(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_cfca0a(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_1cf529(tint_module_vars);
 }
 //
 // vertex_main
@@ -109,7 +109,7 @@
   uint VertexOutput_prevent_dce [[user(locn0)]] [[flat]];
 };
 
-uint arrayLength_cfca0a(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_1cf529(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
@@ -117,7 +117,7 @@
 VertexOutput vertex_main_inner(tint_module_vars_struct tint_module_vars) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_cfca0a(tint_module_vars);
+  out.prevent_dce = arrayLength_1cf529(tint_module_vars);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.msl b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.msl
similarity index 91%
rename from test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.msl
index 904bf902..781f5a4 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.msl
@@ -25,7 +25,7 @@
   tint_array<uint, 1> arg_0;
 };
 
-uint arrayLength_cfca0a(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_1cf529(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -36,7 +36,7 @@
 };
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cfca0a(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_1cf529(tint_symbol_2);
   return;
 }
 
@@ -67,7 +67,7 @@
   tint_array<uint, 1> arg_0;
 };
 
-uint arrayLength_cfca0a(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_1cf529(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -78,7 +78,7 @@
 };
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cfca0a(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_1cf529(tint_symbol_2);
   return;
 }
 
@@ -109,7 +109,7 @@
   tint_array<uint, 1> arg_0;
 };
 
-uint arrayLength_cfca0a(const constant TintArrayLengths* const tint_symbol_1) {
+uint arrayLength_1cf529(const constant TintArrayLengths* const tint_symbol_1) {
   uint res = (((*(tint_symbol_1)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -127,7 +127,7 @@
 VertexOutput vertex_main_inner(const constant TintArrayLengths* const tint_symbol_2) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_cfca0a(tint_symbol_2);
+  out.prevent_dce = arrayLength_1cf529(tint_symbol_2);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.spvasm
similarity index 94%
rename from test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.spvasm
rename to test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.spvasm
index 3c9e03b..3ae0569 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.spvasm
@@ -15,7 +15,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_cfca0a "arrayLength_cfca0a"
+               OpName %arrayLength_1cf529 "arrayLength_1cf529"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -44,7 +44,7 @@
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cfca0a = OpFunction %uint None %10
+%arrayLength_1cf529 = OpFunction %uint None %10
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %12 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_ro %uint_0
@@ -55,7 +55,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %21
          %22 = OpLabel
-         %23 = OpFunctionCall %uint %arrayLength_cfca0a
+         %23 = OpFunctionCall %uint %arrayLength_1cf529
          %24 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %24 %23 None
                OpReturn
@@ -77,7 +77,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_cfca0a "arrayLength_cfca0a"
+               OpName %arrayLength_1cf529 "arrayLength_1cf529"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -106,7 +106,7 @@
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cfca0a = OpFunction %uint None %10
+%arrayLength_1cf529 = OpFunction %uint None %10
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %12 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_ro %uint_0
@@ -117,7 +117,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %21
          %22 = OpLabel
-         %23 = OpFunctionCall %uint %arrayLength_cfca0a
+         %23 = OpFunctionCall %uint %arrayLength_1cf529
          %24 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %24 %23 None
                OpReturn
@@ -139,7 +139,7 @@
                OpName %vertex_main_position_Output "vertex_main_position_Output"
                OpName %vertex_main_loc0_Output "vertex_main_loc0_Output"
                OpName %vertex_main___point_size_Output "vertex_main___point_size_Output"
-               OpName %arrayLength_cfca0a "arrayLength_cfca0a"
+               OpName %arrayLength_1cf529 "arrayLength_1cf529"
                OpName %res "res"
                OpName %vertex_main_inner "vertex_main_inner"
                OpMemberName %VertexOutput 0 "pos"
@@ -186,7 +186,7 @@
        %void = OpTypeVoid
          %40 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-%arrayLength_cfca0a = OpFunction %uint None %15
+%arrayLength_1cf529 = OpFunction %uint None %15
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %17 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_ro %uint_0
@@ -201,7 +201,7 @@
          %31 = OpAccessChain %_ptr_Function_v4float %out %uint_0
                OpStore %31 %33 None
          %34 = OpAccessChain %_ptr_Function_uint %out %uint_1
-         %36 = OpFunctionCall %uint %arrayLength_cfca0a
+         %36 = OpFunctionCall %uint %arrayLength_1cf529
                OpStore %34 %36 None
          %37 = OpLoad %VertexOutput %out None
                OpReturnValue %37
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.wgsl
similarity index 78%
rename from test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.wgsl
index c1b2368..198d8d6 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.wgsl
@@ -6,19 +6,19 @@
 
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-fn arrayLength_cfca0a() -> u32 {
+fn arrayLength_1cf529() -> u32 {
   var res : u32 = arrayLength(&(sb_ro.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_cfca0a();
+  prevent_dce = arrayLength_1cf529();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_cfca0a();
+  prevent_dce = arrayLength_1cf529();
 }
 
 struct VertexOutput {
@@ -32,6 +32,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_cfca0a();
+  out.prevent_dce = arrayLength_1cf529();
   return out;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl
similarity index 90%
rename from test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl
index ba8e087..58be547 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2021 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -42,17 +42,17 @@
 };
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-// fn arrayLength(ptr<storage, array<u32>, read_write>) -> u32
-fn arrayLength_eb510f() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<u32>, read_write>) -> u32
+fn arrayLength_23a62c() -> u32{
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_eb510f();
+  prevent_dce = arrayLength_23a62c();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_eb510f();
+  prevent_dce = arrayLength_23a62c();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.dxc.hlsl
similarity index 79%
rename from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.dxc.hlsl
index 79b0daf..a0e6ff3 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_23a62c() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_23a62c()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_23a62c() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_23a62c()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.fxc.hlsl
similarity index 79%
copy from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.fxc.hlsl
index 79b0daf..a0e6ff3 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_23a62c() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_23a62c()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_23a62c() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_23a62c()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.glsl
similarity index 83%
rename from test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.glsl
index 3559580..4e1c9f3 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 buffer f_SB_RW_ssbo {
   uint arg_0[];
 } sb_rw;
-uint arrayLength_eb510f() {
+uint arrayLength_23a62c() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_eb510f();
+  v.inner = arrayLength_23a62c();
 }
 //
 // compute_main
@@ -33,11 +33,11 @@
 buffer SB_RW_1_ssbo {
   uint arg_0[];
 } sb_rw;
-uint arrayLength_eb510f() {
+uint arrayLength_23a62c() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_eb510f();
+  v.inner = arrayLength_23a62c();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.ir.dxc.hlsl
similarity index 75%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.ir.dxc.hlsl
index 6604b90..ef666c2 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_23a62c() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_23a62c());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_23a62c() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_23a62c());
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.ir.fxc.hlsl
similarity index 75%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.ir.fxc.hlsl
index 6604b90..ef666c2 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_23a62c() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_23a62c());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_23a62c() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_23a62c());
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.ir.msl
similarity index 91%
rename from test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.msl
rename to test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.ir.msl
index 94a9121..d8326fd 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_eb510f(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_23a62c(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_eb510f(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_23a62c(tint_module_vars);
 }
 //
 // compute_main
@@ -63,12 +63,12 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_eb510f(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_23a62c(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_eb510f(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_23a62c(tint_module_vars);
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.msl b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.msl
similarity index 89%
rename from test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.msl
index 1e3c402..2103687 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.msl
@@ -25,13 +25,13 @@
   tint_array<uint, 1> arg_0;
 };
 
-uint arrayLength_eb510f(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_23a62c(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_eb510f(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_23a62c(tint_symbol_2);
   return;
 }
 
@@ -62,13 +62,13 @@
   tint_array<uint, 1> arg_0;
 };
 
-uint arrayLength_eb510f(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_23a62c(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_eb510f(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_23a62c(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.spvasm
similarity index 93%
rename from test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.spvasm
rename to test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.spvasm
index 9c47aef..5a67592 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.spvasm
@@ -15,7 +15,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_eb510f "arrayLength_eb510f"
+               OpName %arrayLength_23a62c "arrayLength_23a62c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -44,7 +44,7 @@
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_eb510f = OpFunction %uint None %10
+%arrayLength_23a62c = OpFunction %uint None %10
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %12 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_rw %uint_0
@@ -55,7 +55,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %21
          %22 = OpLabel
-         %23 = OpFunctionCall %uint %arrayLength_eb510f
+         %23 = OpFunctionCall %uint %arrayLength_23a62c
          %24 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %24 %23 None
                OpReturn
@@ -77,7 +77,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_eb510f "arrayLength_eb510f"
+               OpName %arrayLength_23a62c "arrayLength_23a62c"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -106,7 +106,7 @@
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_eb510f = OpFunction %uint None %10
+%arrayLength_23a62c = OpFunction %uint None %10
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %12 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_rw %uint_0
@@ -117,7 +117,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %21
          %22 = OpLabel
-         %23 = OpFunctionCall %uint %arrayLength_eb510f
+         %23 = OpFunctionCall %uint %arrayLength_23a62c
          %24 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %24 %23 None
                OpReturn
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.wgsl
similarity index 74%
rename from test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.wgsl
index ec2bb62..1e34ea0 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/23a62c.wgsl.expected.wgsl
@@ -6,17 +6,17 @@
 
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-fn arrayLength_eb510f() -> u32 {
+fn arrayLength_23a62c() -> u32 {
   var res : u32 = arrayLength(&(sb_rw.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_eb510f();
+  prevent_dce = arrayLength_23a62c();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_eb510f();
+  prevent_dce = arrayLength_23a62c();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl
similarity index 90%
rename from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl
index 6339a25..7c0a8dd 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2021 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -42,19 +42,19 @@
 };
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-// fn arrayLength(ptr<storage, array<f32>, read>) -> u32
-fn arrayLength_a0f5ca() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<f32>, read>) -> u32
+fn arrayLength_3a93e6() -> u32{
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_a0f5ca();
+  prevent_dce = arrayLength_3a93e6();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_a0f5ca();
+  prevent_dce = arrayLength_3a93e6();
 }
 
 struct VertexOutput {
@@ -66,6 +66,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_a0f5ca();
+  out.prevent_dce = arrayLength_3a93e6();
   return out;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.dxc.hlsl
similarity index 85%
rename from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.dxc.hlsl
index c638623..6ff89e7 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_3a93e6() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_3a93e6()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_3a93e6() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_3a93e6()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_3a93e6() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_1588cd();
+  tint_symbol.prevent_dce = arrayLength_3a93e6();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.fxc.hlsl
similarity index 85%
copy from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.fxc.hlsl
index c638623..6ff89e7 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_3a93e6() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_3a93e6()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_3a93e6() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_3a93e6()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_3a93e6() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_1588cd();
+  tint_symbol.prevent_dce = arrayLength_3a93e6();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.glsl
similarity index 86%
rename from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.glsl
index b531225..fd6594e 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 buffer f_SB_RO_ssbo {
   float arg_0[];
 } sb_ro;
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_a0f5ca();
+  v.inner = arrayLength_3a93e6();
 }
 //
 // compute_main
@@ -33,13 +33,13 @@
 buffer SB_RO_1_ssbo {
   float arg_0[];
 } sb_ro;
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_a0f5ca();
+  v.inner = arrayLength_3a93e6();
 }
 //
 // vertex_main
@@ -57,14 +57,14 @@
   float arg_0[];
 } sb_ro;
 layout(location = 0) flat out uint tint_interstage_location0;
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 VertexOutput vertex_main_inner() {
   VertexOutput v = VertexOutput(vec4(0.0f), 0u);
   v.pos = vec4(0.0f);
-  v.prevent_dce = arrayLength_a0f5ca();
+  v.prevent_dce = arrayLength_3a93e6();
   return v;
 }
 void main() {
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.ir.dxc.hlsl
similarity index 83%
rename from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.ir.dxc.hlsl
index ccc8aa4..e95c09c 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_3a93e6());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_3a93e6());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_a0f5ca();
+  v_1.prevent_dce = arrayLength_3a93e6();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.ir.fxc.hlsl
similarity index 83%
rename from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.ir.fxc.hlsl
index ccc8aa4..e95c09c 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_3a93e6());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_3a93e6());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_a0f5ca();
+  v_1.prevent_dce = arrayLength_3a93e6();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.ir.msl
similarity index 92%
rename from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.msl
rename to test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.ir.msl
index 1703b1a..fe66cc7 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_a0f5ca(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_3a93e6(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_a0f5ca(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_3a93e6(tint_module_vars);
 }
 //
 // compute_main
@@ -63,14 +63,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_a0f5ca(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_3a93e6(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_a0f5ca(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_3a93e6(tint_module_vars);
 }
 //
 // vertex_main
@@ -109,7 +109,7 @@
   uint VertexOutput_prevent_dce [[user(locn0)]] [[flat]];
 };
 
-uint arrayLength_a0f5ca(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_3a93e6(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
@@ -117,7 +117,7 @@
 VertexOutput vertex_main_inner(tint_module_vars_struct tint_module_vars) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_a0f5ca(tint_module_vars);
+  out.prevent_dce = arrayLength_3a93e6(tint_module_vars);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.msl b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.msl
similarity index 91%
rename from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.msl
index b7640cd..d72f18a 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.msl
@@ -25,7 +25,7 @@
   tint_array<float, 1> arg_0;
 };
 
-uint arrayLength_a0f5ca(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_3a93e6(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -36,7 +36,7 @@
 };
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_a0f5ca(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_3a93e6(tint_symbol_2);
   return;
 }
 
@@ -67,7 +67,7 @@
   tint_array<float, 1> arg_0;
 };
 
-uint arrayLength_a0f5ca(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_3a93e6(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -78,7 +78,7 @@
 };
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_a0f5ca(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_3a93e6(tint_symbol_2);
   return;
 }
 
@@ -109,7 +109,7 @@
   tint_array<float, 1> arg_0;
 };
 
-uint arrayLength_a0f5ca(const constant TintArrayLengths* const tint_symbol_1) {
+uint arrayLength_3a93e6(const constant TintArrayLengths* const tint_symbol_1) {
   uint res = (((*(tint_symbol_1)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -127,7 +127,7 @@
 VertexOutput vertex_main_inner(const constant TintArrayLengths* const tint_symbol_2) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_a0f5ca(tint_symbol_2);
+  out.prevent_dce = arrayLength_3a93e6(tint_symbol_2);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.spvasm
similarity index 94%
rename from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.spvasm
rename to test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.spvasm
index 05c891c..0af292a 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.spvasm
@@ -15,7 +15,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_a0f5ca "arrayLength_a0f5ca"
+               OpName %arrayLength_3a93e6 "arrayLength_3a93e6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -45,7 +45,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_a0f5ca = OpFunction %uint None %11
+%arrayLength_3a93e6 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_ro %uint_0
@@ -56,7 +56,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_a0f5ca
+         %24 = OpFunctionCall %uint %arrayLength_3a93e6
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -78,7 +78,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_a0f5ca "arrayLength_a0f5ca"
+               OpName %arrayLength_3a93e6 "arrayLength_3a93e6"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -108,7 +108,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_a0f5ca = OpFunction %uint None %11
+%arrayLength_3a93e6 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_ro %uint_0
@@ -119,7 +119,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_a0f5ca
+         %24 = OpFunctionCall %uint %arrayLength_3a93e6
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -141,7 +141,7 @@
                OpName %vertex_main_position_Output "vertex_main_position_Output"
                OpName %vertex_main_loc0_Output "vertex_main_loc0_Output"
                OpName %vertex_main___point_size_Output "vertex_main___point_size_Output"
-               OpName %arrayLength_a0f5ca "arrayLength_a0f5ca"
+               OpName %arrayLength_3a93e6 "arrayLength_3a93e6"
                OpName %res "res"
                OpName %vertex_main_inner "vertex_main_inner"
                OpMemberName %VertexOutput 0 "pos"
@@ -188,7 +188,7 @@
        %void = OpTypeVoid
          %40 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-%arrayLength_a0f5ca = OpFunction %uint None %15
+%arrayLength_3a93e6 = OpFunction %uint None %15
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %17 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_ro %uint_0
@@ -203,7 +203,7 @@
          %31 = OpAccessChain %_ptr_Function_v4float %out %uint_0
                OpStore %31 %33 None
          %34 = OpAccessChain %_ptr_Function_uint %out %uint_1
-         %36 = OpFunctionCall %uint %arrayLength_a0f5ca
+         %36 = OpFunctionCall %uint %arrayLength_3a93e6
                OpStore %34 %36 None
          %37 = OpLoad %VertexOutput %out None
                OpReturnValue %37
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.wgsl
similarity index 78%
rename from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.wgsl
index 49a5398..7d632b9 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.wgsl
@@ -6,19 +6,19 @@
 
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-fn arrayLength_a0f5ca() -> u32 {
+fn arrayLength_3a93e6() -> u32 {
   var res : u32 = arrayLength(&(sb_ro.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_a0f5ca();
+  prevent_dce = arrayLength_3a93e6();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_a0f5ca();
+  prevent_dce = arrayLength_3a93e6();
 }
 
 struct VertexOutput {
@@ -32,6 +32,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_a0f5ca();
+  out.prevent_dce = arrayLength_3a93e6();
   return out;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl
similarity index 90%
rename from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl
index f093818..fc35ecc 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2021 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -42,17 +42,17 @@
 };
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-// fn arrayLength(ptr<storage, array<i32>, read_write>) -> u32
-fn arrayLength_61b1c7() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<i32>, read_write>) -> u32
+fn arrayLength_429cb6() -> u32{
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_61b1c7();
+  prevent_dce = arrayLength_429cb6();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_61b1c7();
+  prevent_dce = arrayLength_429cb6();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.dxc.hlsl
similarity index 79%
copy from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.dxc.hlsl
index 79b0daf..d4eabf9 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_429cb6() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_429cb6()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_429cb6() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_429cb6()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.fxc.hlsl
similarity index 79%
copy from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.fxc.hlsl
index 79b0daf..d4eabf9 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_429cb6() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_429cb6()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_429cb6() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_429cb6()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.glsl
similarity index 83%
rename from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.glsl
index fe278f3..4574e24 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 buffer f_SB_RW_ssbo {
   int arg_0[];
 } sb_rw;
-uint arrayLength_61b1c7() {
+uint arrayLength_429cb6() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_61b1c7();
+  v.inner = arrayLength_429cb6();
 }
 //
 // compute_main
@@ -33,11 +33,11 @@
 buffer SB_RW_1_ssbo {
   int arg_0[];
 } sb_rw;
-uint arrayLength_61b1c7() {
+uint arrayLength_429cb6() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_61b1c7();
+  v.inner = arrayLength_429cb6();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.ir.dxc.hlsl
similarity index 75%
rename from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.ir.dxc.hlsl
index 6604b90..8747e2e 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_429cb6() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_429cb6());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_429cb6() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_429cb6());
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.ir.fxc.hlsl
similarity index 75%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.ir.fxc.hlsl
index 6604b90..8747e2e 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_429cb6() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_429cb6());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_429cb6() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_429cb6());
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.ir.msl
similarity index 91%
rename from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.msl
rename to test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.ir.msl
index cf0c802..bf352b6 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_61b1c7(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_429cb6(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_61b1c7(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_429cb6(tint_module_vars);
 }
 //
 // compute_main
@@ -63,12 +63,12 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_61b1c7(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_429cb6(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_61b1c7(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_429cb6(tint_module_vars);
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.msl b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.msl
similarity index 89%
rename from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.msl
index 7561e67..19e5c7a 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.msl
@@ -25,13 +25,13 @@
   tint_array<int, 1> arg_0;
 };
 
-uint arrayLength_61b1c7(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_429cb6(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_61b1c7(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_429cb6(tint_symbol_2);
   return;
 }
 
@@ -62,13 +62,13 @@
   tint_array<int, 1> arg_0;
 };
 
-uint arrayLength_61b1c7(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_429cb6(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_61b1c7(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_429cb6(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.spvasm
similarity index 93%
rename from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.spvasm
rename to test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.spvasm
index f8d5841..cb2f9b3 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.spvasm
@@ -15,7 +15,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_61b1c7 "arrayLength_61b1c7"
+               OpName %arrayLength_429cb6 "arrayLength_429cb6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -45,7 +45,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_61b1c7 = OpFunction %uint None %11
+%arrayLength_429cb6 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_rw %uint_0
@@ -56,7 +56,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_61b1c7
+         %24 = OpFunctionCall %uint %arrayLength_429cb6
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -78,7 +78,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_61b1c7 "arrayLength_61b1c7"
+               OpName %arrayLength_429cb6 "arrayLength_429cb6"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -108,7 +108,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_61b1c7 = OpFunction %uint None %11
+%arrayLength_429cb6 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_rw %uint_0
@@ -119,7 +119,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_61b1c7
+         %24 = OpFunctionCall %uint %arrayLength_429cb6
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.wgsl
similarity index 74%
rename from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.wgsl
index 256b54d..4897c09 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/429cb6.wgsl.expected.wgsl
@@ -6,17 +6,17 @@
 
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-fn arrayLength_61b1c7() -> u32 {
+fn arrayLength_429cb6() -> u32 {
   var res : u32 = arrayLength(&(sb_rw.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_61b1c7();
+  prevent_dce = arrayLength_429cb6();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_61b1c7();
+  prevent_dce = arrayLength_429cb6();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 8775367..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_61b1c7() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_61b1c7());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_61b1c7() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_61b1c7());
-}
-
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 8775367..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_61b1c7() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_61b1c7());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_61b1c7() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_61b1c7());
-}
-
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl
similarity index 90%
rename from test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl
index 4bf5816..0ad68f8 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2022 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -47,19 +47,19 @@
 };
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-// fn arrayLength(ptr<storage, array<f16>, read>) -> u32
-fn arrayLength_8421b9() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<f16>, read>) -> u32
+fn arrayLength_9ea96d() -> u32{
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_8421b9();
+  prevent_dce = arrayLength_9ea96d();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_8421b9();
+  prevent_dce = arrayLength_9ea96d();
 }
 
 struct VertexOutput {
@@ -71,6 +71,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_8421b9();
+  out.prevent_dce = arrayLength_9ea96d();
   return out;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.dxc.hlsl
similarity index 85%
rename from test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.dxc.hlsl
index d914c06..2ba1804 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
+  prevent_dce.Store(0u, asuint(arrayLength_9ea96d()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
+  prevent_dce.Store(0u, asuint(arrayLength_9ea96d()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 2u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_8421b9();
+  tint_symbol.prevent_dce = arrayLength_9ea96d();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.fxc.hlsl
similarity index 85%
copy from test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.fxc.hlsl
index d914c06..2ba1804 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
+  prevent_dce.Store(0u, asuint(arrayLength_9ea96d()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
+  prevent_dce.Store(0u, asuint(arrayLength_9ea96d()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 2u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_8421b9();
+  tint_symbol.prevent_dce = arrayLength_9ea96d();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.glsl
similarity index 88%
rename from test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.glsl
index 59e4c26..f4666d2 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.glsl
@@ -14,12 +14,12 @@
 buffer f_SB_RO_ssbo {
   float16_t arg_0[];
 } sb_ro;
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_8421b9();
+  v.inner = arrayLength_9ea96d();
 }
 //
 // compute_main
@@ -35,13 +35,13 @@
 buffer SB_RO_1_ssbo {
   float16_t arg_0[];
 } sb_ro;
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_8421b9();
+  v.inner = arrayLength_9ea96d();
 }
 //
 // vertex_main
@@ -60,14 +60,14 @@
   float16_t arg_0[];
 } sb_ro;
 layout(location = 0) flat out uint tint_interstage_location0;
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 VertexOutput vertex_main_inner() {
   VertexOutput v = VertexOutput(vec4(0.0f), 0u);
   v.pos = vec4(0.0f);
-  v.prevent_dce = arrayLength_8421b9();
+  v.prevent_dce = arrayLength_9ea96d();
   return v;
 }
 void main() {
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.ir.dxc.hlsl
similarity index 83%
rename from test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.ir.dxc.hlsl
index d076141..f2a89d7 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 2u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_8421b9());
+  prevent_dce.Store(0u, arrayLength_9ea96d());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 2u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_8421b9());
+  prevent_dce.Store(0u, arrayLength_9ea96d());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 2u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_8421b9();
+  v_1.prevent_dce = arrayLength_9ea96d();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.ir.fxc.hlsl
similarity index 83%
rename from test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.ir.fxc.hlsl
index d076141..f2a89d7 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 2u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_8421b9());
+  prevent_dce.Store(0u, arrayLength_9ea96d());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 2u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_8421b9());
+  prevent_dce.Store(0u, arrayLength_9ea96d());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 2u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_8421b9();
+  v_1.prevent_dce = arrayLength_9ea96d();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.ir.msl
similarity index 92%
rename from test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.msl
rename to test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.ir.msl
index c042a03..9d5d837 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_8421b9(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_9ea96d(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 2u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_8421b9(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_9ea96d(tint_module_vars);
 }
 //
 // compute_main
@@ -63,14 +63,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_8421b9(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_9ea96d(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 2u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_8421b9(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_9ea96d(tint_module_vars);
 }
 //
 // vertex_main
@@ -109,7 +109,7 @@
   uint VertexOutput_prevent_dce [[user(locn0)]] [[flat]];
 };
 
-uint arrayLength_8421b9(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_9ea96d(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 2u);
   return res;
 }
@@ -117,7 +117,7 @@
 VertexOutput vertex_main_inner(tint_module_vars_struct tint_module_vars) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_8421b9(tint_module_vars);
+  out.prevent_dce = arrayLength_9ea96d(tint_module_vars);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.msl b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.msl
similarity index 91%
rename from test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.msl
index ceef0a8..29b1ca8 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.msl
@@ -25,7 +25,7 @@
   tint_array<half, 1> arg_0;
 };
 
-uint arrayLength_8421b9(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_9ea96d(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 2u);
   return res;
 }
@@ -36,7 +36,7 @@
 };
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_8421b9(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_9ea96d(tint_symbol_2);
   return;
 }
 
@@ -67,7 +67,7 @@
   tint_array<half, 1> arg_0;
 };
 
-uint arrayLength_8421b9(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_9ea96d(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 2u);
   return res;
 }
@@ -78,7 +78,7 @@
 };
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_8421b9(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_9ea96d(tint_symbol_2);
   return;
 }
 
@@ -109,7 +109,7 @@
   tint_array<half, 1> arg_0;
 };
 
-uint arrayLength_8421b9(const constant TintArrayLengths* const tint_symbol_1) {
+uint arrayLength_9ea96d(const constant TintArrayLengths* const tint_symbol_1) {
   uint res = (((*(tint_symbol_1)).array_lengths[0u][0u] - 0u) / 2u);
   return res;
 }
@@ -127,7 +127,7 @@
 VertexOutput vertex_main_inner(const constant TintArrayLengths* const tint_symbol_2) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_8421b9(tint_symbol_2);
+  out.prevent_dce = arrayLength_9ea96d(tint_symbol_2);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.spvasm
similarity index 95%
rename from test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.spvasm
rename to test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.spvasm
index 40a884a..4e4c73b 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.spvasm
@@ -18,7 +18,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_8421b9 "arrayLength_8421b9"
+               OpName %arrayLength_9ea96d "arrayLength_9ea96d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -48,7 +48,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_8421b9 = OpFunction %uint None %11
+%arrayLength_9ea96d = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_ro %uint_0
@@ -59,7 +59,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_8421b9
+         %24 = OpFunctionCall %uint %arrayLength_9ea96d
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -84,7 +84,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_8421b9 "arrayLength_8421b9"
+               OpName %arrayLength_9ea96d "arrayLength_9ea96d"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -114,7 +114,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_8421b9 = OpFunction %uint None %11
+%arrayLength_9ea96d = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_ro %uint_0
@@ -125,7 +125,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_8421b9
+         %24 = OpFunctionCall %uint %arrayLength_9ea96d
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -150,7 +150,7 @@
                OpName %vertex_main_position_Output "vertex_main_position_Output"
                OpName %vertex_main_loc0_Output "vertex_main_loc0_Output"
                OpName %vertex_main___point_size_Output "vertex_main___point_size_Output"
-               OpName %arrayLength_8421b9 "arrayLength_8421b9"
+               OpName %arrayLength_9ea96d "arrayLength_9ea96d"
                OpName %res "res"
                OpName %vertex_main_inner "vertex_main_inner"
                OpMemberName %VertexOutput 0 "pos"
@@ -198,7 +198,7 @@
        %void = OpTypeVoid
          %41 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-%arrayLength_8421b9 = OpFunction %uint None %16
+%arrayLength_9ea96d = OpFunction %uint None %16
          %17 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %18 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_ro %uint_0
@@ -213,7 +213,7 @@
          %32 = OpAccessChain %_ptr_Function_v4float %out %uint_0
                OpStore %32 %34 None
          %35 = OpAccessChain %_ptr_Function_uint %out %uint_1
-         %37 = OpFunctionCall %uint %arrayLength_8421b9
+         %37 = OpFunctionCall %uint %arrayLength_9ea96d
                OpStore %35 %37 None
          %38 = OpLoad %VertexOutput %out None
                OpReturnValue %38
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.wgsl
similarity index 78%
rename from test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.wgsl
index ec5202c..3f8f5bf 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.wgsl
@@ -8,19 +8,19 @@
 
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-fn arrayLength_8421b9() -> u32 {
+fn arrayLength_9ea96d() -> u32 {
   var res : u32 = arrayLength(&(sb_ro.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_8421b9();
+  prevent_dce = arrayLength_9ea96d();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_8421b9();
+  prevent_dce = arrayLength_9ea96d();
 }
 
 struct VertexOutput {
@@ -34,6 +34,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_8421b9();
+  out.prevent_dce = arrayLength_9ea96d();
   return out;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 2e68ad7..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_a0f5ca() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_a0f5ca()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_a0f5ca() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_a0f5ca()));
-  return;
-}
-//
-// vertex_main
-//
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_a0f5ca() {
-  uint tint_symbol_3 = 0u;
-  sb_ro.GetDimensions(tint_symbol_3);
-  uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
-  uint res = tint_symbol_4;
-  return res;
-}
-
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-struct tint_symbol_1 {
-  nointerpolation uint prevent_dce : TEXCOORD0;
-  float4 pos : SV_Position;
-};
-
-VertexOutput vertex_main_inner() {
-  VertexOutput tint_symbol = (VertexOutput)0;
-  tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_a0f5ca();
-  return tint_symbol;
-}
-
-tint_symbol_1 vertex_main() {
-  VertexOutput inner_result = vertex_main_inner();
-  tint_symbol_1 wrapper_result = (tint_symbol_1)0;
-  wrapper_result.pos = inner_result.pos;
-  wrapper_result.prevent_dce = inner_result.prevent_dce;
-  return wrapper_result;
-}
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 2e68ad7..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_a0f5ca() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_a0f5ca()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_a0f5ca() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_a0f5ca()));
-  return;
-}
-//
-// vertex_main
-//
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_a0f5ca() {
-  uint tint_symbol_3 = 0u;
-  sb_ro.GetDimensions(tint_symbol_3);
-  uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
-  uint res = tint_symbol_4;
-  return res;
-}
-
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-struct tint_symbol_1 {
-  nointerpolation uint prevent_dce : TEXCOORD0;
-  float4 pos : SV_Position;
-};
-
-VertexOutput vertex_main_inner() {
-  VertexOutput tint_symbol = (VertexOutput)0;
-  tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_a0f5ca();
-  return tint_symbol;
-}
-
-tint_symbol_1 vertex_main() {
-  VertexOutput inner_result = vertex_main_inner();
-  tint_symbol_1 wrapper_result = (tint_symbol_1)0;
-  wrapper_result.pos = inner_result.pos;
-  wrapper_result.prevent_dce = inner_result.prevent_dce;
-  return wrapper_result;
-}
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl
similarity index 90%
rename from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl
index 11dd7e5..6a5da00 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2021 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -42,19 +42,19 @@
 };
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-// fn arrayLength(ptr<storage, array<i32>, read>) -> u32
-fn arrayLength_1588cd() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<i32>, read>) -> u32
+fn arrayLength_bf7d97() -> u32{
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_1588cd();
+  prevent_dce = arrayLength_bf7d97();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_1588cd();
+  prevent_dce = arrayLength_bf7d97();
 }
 
 struct VertexOutput {
@@ -66,6 +66,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_1588cd();
+  out.prevent_dce = arrayLength_bf7d97();
   return out;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.dxc.hlsl
similarity index 85%
copy from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.dxc.hlsl
index c638623..8f601d6 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_bf7d97()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_bf7d97()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_1588cd();
+  tint_symbol.prevent_dce = arrayLength_bf7d97();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.fxc.hlsl
similarity index 85%
copy from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.fxc.hlsl
index c638623..8f601d6 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_bf7d97()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_bf7d97()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_1588cd();
+  tint_symbol.prevent_dce = arrayLength_bf7d97();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.glsl
similarity index 86%
rename from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.glsl
index 073776b..dc82d4b 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 buffer f_SB_RO_ssbo {
   int arg_0[];
 } sb_ro;
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_1588cd();
+  v.inner = arrayLength_bf7d97();
 }
 //
 // compute_main
@@ -33,13 +33,13 @@
 buffer SB_RO_1_ssbo {
   int arg_0[];
 } sb_ro;
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_1588cd();
+  v.inner = arrayLength_bf7d97();
 }
 //
 // vertex_main
@@ -57,14 +57,14 @@
   int arg_0[];
 } sb_ro;
 layout(location = 0) flat out uint tint_interstage_location0;
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 VertexOutput vertex_main_inner() {
   VertexOutput v = VertexOutput(vec4(0.0f), 0u);
   v.pos = vec4(0.0f);
-  v.prevent_dce = arrayLength_1588cd();
+  v.prevent_dce = arrayLength_bf7d97();
   return v;
 }
 void main() {
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.ir.dxc.hlsl
similarity index 83%
copy from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.ir.dxc.hlsl
index ccc8aa4..695f703 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_bf7d97() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_bf7d97());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_bf7d97() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_bf7d97());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_bf7d97() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_a0f5ca();
+  v_1.prevent_dce = arrayLength_bf7d97();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.ir.fxc.hlsl
similarity index 83%
copy from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.ir.fxc.hlsl
index ccc8aa4..695f703 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_bf7d97() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_bf7d97());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_bf7d97() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_bf7d97());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_bf7d97() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_a0f5ca();
+  v_1.prevent_dce = arrayLength_bf7d97();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.ir.msl
similarity index 92%
rename from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.msl
rename to test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.ir.msl
index b261877..32ad0b6 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_1588cd(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_bf7d97(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_1588cd(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_bf7d97(tint_module_vars);
 }
 //
 // compute_main
@@ -63,14 +63,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_1588cd(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_bf7d97(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_1588cd(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_bf7d97(tint_module_vars);
 }
 //
 // vertex_main
@@ -109,7 +109,7 @@
   uint VertexOutput_prevent_dce [[user(locn0)]] [[flat]];
 };
 
-uint arrayLength_1588cd(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_bf7d97(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
@@ -117,7 +117,7 @@
 VertexOutput vertex_main_inner(tint_module_vars_struct tint_module_vars) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_1588cd(tint_module_vars);
+  out.prevent_dce = arrayLength_bf7d97(tint_module_vars);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.msl b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.msl
similarity index 91%
rename from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.msl
index 6b62e72..b78da29 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.msl
@@ -25,7 +25,7 @@
   tint_array<int, 1> arg_0;
 };
 
-uint arrayLength_1588cd(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_bf7d97(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -36,7 +36,7 @@
 };
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_1588cd(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_bf7d97(tint_symbol_2);
   return;
 }
 
@@ -67,7 +67,7 @@
   tint_array<int, 1> arg_0;
 };
 
-uint arrayLength_1588cd(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_bf7d97(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -78,7 +78,7 @@
 };
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_1588cd(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_bf7d97(tint_symbol_2);
   return;
 }
 
@@ -109,7 +109,7 @@
   tint_array<int, 1> arg_0;
 };
 
-uint arrayLength_1588cd(const constant TintArrayLengths* const tint_symbol_1) {
+uint arrayLength_bf7d97(const constant TintArrayLengths* const tint_symbol_1) {
   uint res = (((*(tint_symbol_1)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -127,7 +127,7 @@
 VertexOutput vertex_main_inner(const constant TintArrayLengths* const tint_symbol_2) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_1588cd(tint_symbol_2);
+  out.prevent_dce = arrayLength_bf7d97(tint_symbol_2);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.spvasm
similarity index 94%
rename from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.spvasm
rename to test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.spvasm
index 02c203d..2c79b63 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.spvasm
@@ -15,7 +15,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_1588cd "arrayLength_1588cd"
+               OpName %arrayLength_bf7d97 "arrayLength_bf7d97"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -45,7 +45,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_1588cd = OpFunction %uint None %11
+%arrayLength_bf7d97 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_ro %uint_0
@@ -56,7 +56,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_1588cd
+         %24 = OpFunctionCall %uint %arrayLength_bf7d97
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -78,7 +78,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_1588cd "arrayLength_1588cd"
+               OpName %arrayLength_bf7d97 "arrayLength_bf7d97"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -108,7 +108,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_1588cd = OpFunction %uint None %11
+%arrayLength_bf7d97 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_ro %uint_0
@@ -119,7 +119,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_1588cd
+         %24 = OpFunctionCall %uint %arrayLength_bf7d97
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -141,7 +141,7 @@
                OpName %vertex_main_position_Output "vertex_main_position_Output"
                OpName %vertex_main_loc0_Output "vertex_main_loc0_Output"
                OpName %vertex_main___point_size_Output "vertex_main___point_size_Output"
-               OpName %arrayLength_1588cd "arrayLength_1588cd"
+               OpName %arrayLength_bf7d97 "arrayLength_bf7d97"
                OpName %res "res"
                OpName %vertex_main_inner "vertex_main_inner"
                OpMemberName %VertexOutput 0 "pos"
@@ -189,7 +189,7 @@
        %void = OpTypeVoid
          %41 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-%arrayLength_1588cd = OpFunction %uint None %16
+%arrayLength_bf7d97 = OpFunction %uint None %16
          %17 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %18 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_ro %uint_0
@@ -204,7 +204,7 @@
          %32 = OpAccessChain %_ptr_Function_v4float %out %uint_0
                OpStore %32 %34 None
          %35 = OpAccessChain %_ptr_Function_uint %out %uint_1
-         %37 = OpFunctionCall %uint %arrayLength_1588cd
+         %37 = OpFunctionCall %uint %arrayLength_bf7d97
                OpStore %35 %37 None
          %38 = OpLoad %VertexOutput %out None
                OpReturnValue %38
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.wgsl
similarity index 78%
rename from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.wgsl
index b00ac77..4ec2d47 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.wgsl
@@ -6,19 +6,19 @@
 
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-fn arrayLength_1588cd() -> u32 {
+fn arrayLength_bf7d97() -> u32 {
   var res : u32 = arrayLength(&(sb_ro.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_1588cd();
+  prevent_dce = arrayLength_bf7d97();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_1588cd();
+  prevent_dce = arrayLength_bf7d97();
 }
 
 struct VertexOutput {
@@ -32,6 +32,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_1588cd();
+  out.prevent_dce = arrayLength_bf7d97();
   return out;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index f458ee9..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cbd6b5() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 2u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cbd6b5());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cbd6b5() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 2u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cbd6b5());
-}
-
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl
similarity index 90%
rename from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl
index 23b09c7..2ea0340 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2021 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -42,17 +42,17 @@
 };
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-// fn arrayLength(ptr<storage, array<f32>, read_write>) -> u32
-fn arrayLength_cdd123() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<f32>, read_write>) -> u32
+fn arrayLength_cc9a8d() -> u32{
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_cdd123();
+  prevent_dce = arrayLength_cc9a8d();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_cdd123();
+  prevent_dce = arrayLength_cc9a8d();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.dxc.hlsl
similarity index 79%
copy from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.dxc.hlsl
index 79b0daf..c58e47f 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_cc9a8d() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_cc9a8d()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_cc9a8d() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_cc9a8d()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.fxc.hlsl
similarity index 79%
copy from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.fxc.hlsl
index 79b0daf..c58e47f 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_cc9a8d() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_cc9a8d()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_cc9a8d() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_cc9a8d()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.glsl
similarity index 83%
rename from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.glsl
index eaa9382..a375654 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 buffer f_SB_RW_ssbo {
   float arg_0[];
 } sb_rw;
-uint arrayLength_cdd123() {
+uint arrayLength_cc9a8d() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_cdd123();
+  v.inner = arrayLength_cc9a8d();
 }
 //
 // compute_main
@@ -33,11 +33,11 @@
 buffer SB_RW_1_ssbo {
   float arg_0[];
 } sb_rw;
-uint arrayLength_cdd123() {
+uint arrayLength_cc9a8d() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_cdd123();
+  v.inner = arrayLength_cc9a8d();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.ir.dxc.hlsl
similarity index 75%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.ir.dxc.hlsl
index 6604b90..3daa558 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_cc9a8d() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_cc9a8d());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_cc9a8d() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_cc9a8d());
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.ir.fxc.hlsl
similarity index 75%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.ir.fxc.hlsl
index 6604b90..3daa558 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_cc9a8d() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_cc9a8d());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_cc9a8d() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_cc9a8d());
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.ir.msl
similarity index 91%
rename from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.msl
rename to test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.ir.msl
index 3096d8b..c680c44 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_cdd123(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_cc9a8d(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_cdd123(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_cc9a8d(tint_module_vars);
 }
 //
 // compute_main
@@ -63,12 +63,12 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_cdd123(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_cc9a8d(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_cdd123(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_cc9a8d(tint_module_vars);
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.msl b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.msl
similarity index 89%
rename from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.msl
index 8103844..bcd33aa 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.msl
@@ -25,13 +25,13 @@
   tint_array<float, 1> arg_0;
 };
 
-uint arrayLength_cdd123(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_cc9a8d(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cdd123(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_cc9a8d(tint_symbol_2);
   return;
 }
 
@@ -62,13 +62,13 @@
   tint_array<float, 1> arg_0;
 };
 
-uint arrayLength_cdd123(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_cc9a8d(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cdd123(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_cc9a8d(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.spvasm
similarity index 93%
rename from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.spvasm
rename to test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.spvasm
index 8b41fdd8..7c2ae70 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.spvasm
@@ -15,7 +15,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_cdd123 "arrayLength_cdd123"
+               OpName %arrayLength_cc9a8d "arrayLength_cc9a8d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -45,7 +45,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cdd123 = OpFunction %uint None %11
+%arrayLength_cc9a8d = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_rw %uint_0
@@ -56,7 +56,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_cdd123
+         %24 = OpFunctionCall %uint %arrayLength_cc9a8d
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -78,7 +78,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_cdd123 "arrayLength_cdd123"
+               OpName %arrayLength_cc9a8d "arrayLength_cc9a8d"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -108,7 +108,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cdd123 = OpFunction %uint None %11
+%arrayLength_cc9a8d = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_rw %uint_0
@@ -119,7 +119,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_cdd123
+         %24 = OpFunctionCall %uint %arrayLength_cc9a8d
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.wgsl
similarity index 74%
rename from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.wgsl
index 1eae93b..937a2b8 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cc9a8d.wgsl.expected.wgsl
@@ -6,17 +6,17 @@
 
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-fn arrayLength_cdd123() -> u32 {
+fn arrayLength_cc9a8d() -> u32 {
   var res : u32 = arrayLength(&(sb_rw.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_cdd123();
+  prevent_dce = arrayLength_cc9a8d();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_cdd123();
+  prevent_dce = arrayLength_cc9a8d();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 7b9849f..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_cdd123() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cdd123()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_cdd123() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cdd123()));
-  return;
-}
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 7b9849f..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_cdd123() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cdd123()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_cdd123() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cdd123()));
-  return;
-}
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6604b90..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
-}
-
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.dxc.hlsl
deleted file mode 100644
index d745420..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_cfca0a() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cfca0a()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_cfca0a() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cfca0a()));
-  return;
-}
-//
-// vertex_main
-//
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_cfca0a() {
-  uint tint_symbol_3 = 0u;
-  sb_ro.GetDimensions(tint_symbol_3);
-  uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
-  uint res = tint_symbol_4;
-  return res;
-}
-
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-struct tint_symbol_1 {
-  nointerpolation uint prevent_dce : TEXCOORD0;
-  float4 pos : SV_Position;
-};
-
-VertexOutput vertex_main_inner() {
-  VertexOutput tint_symbol = (VertexOutput)0;
-  tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_cfca0a();
-  return tint_symbol;
-}
-
-tint_symbol_1 vertex_main() {
-  VertexOutput inner_result = vertex_main_inner();
-  tint_symbol_1 wrapper_result = (tint_symbol_1)0;
-  wrapper_result.pos = inner_result.pos;
-  wrapper_result.prevent_dce = inner_result.prevent_dce;
-  return wrapper_result;
-}
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.fxc.hlsl
deleted file mode 100644
index d745420..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_cfca0a() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cfca0a()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_cfca0a() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cfca0a()));
-  return;
-}
-//
-// vertex_main
-//
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_cfca0a() {
-  uint tint_symbol_3 = 0u;
-  sb_ro.GetDimensions(tint_symbol_3);
-  uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
-  uint res = tint_symbol_4;
-  return res;
-}
-
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-struct tint_symbol_1 {
-  nointerpolation uint prevent_dce : TEXCOORD0;
-  float4 pos : SV_Position;
-};
-
-VertexOutput vertex_main_inner() {
-  VertexOutput tint_symbol = (VertexOutput)0;
-  tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_cfca0a();
-  return tint_symbol;
-}
-
-tint_symbol_1 vertex_main() {
-  VertexOutput inner_result = vertex_main_inner();
-  tint_symbol_1 wrapper_result = (tint_symbol_1)0;
-  wrapper_result.pos = inner_result.pos;
-  wrapper_result.prevent_dce = inner_result.prevent_dce;
-  return wrapper_result;
-}
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ffd0cc..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_cfca0a() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cfca0a());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_cfca0a() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cfca0a());
-}
-
-//
-// vertex_main
-//
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-
-struct vertex_main_outputs {
-  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
-  float4 VertexOutput_pos : SV_Position;
-};
-
-
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_cfca0a() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-VertexOutput vertex_main_inner() {
-  VertexOutput v_1 = (VertexOutput)0;
-  v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_cfca0a();
-  VertexOutput v_2 = v_1;
-  return v_2;
-}
-
-vertex_main_outputs vertex_main() {
-  VertexOutput v_3 = vertex_main_inner();
-  vertex_main_outputs v_4 = {v_3.prevent_dce, v_3.pos};
-  return v_4;
-}
-
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ffd0cc..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_cfca0a() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cfca0a());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_cfca0a() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cfca0a());
-}
-
-//
-// vertex_main
-//
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-
-struct vertex_main_outputs {
-  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
-  float4 VertexOutput_pos : SV_Position;
-};
-
-
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_cfca0a() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-VertexOutput vertex_main_inner() {
-  VertexOutput v_1 = (VertexOutput)0;
-  v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_cfca0a();
-  VertexOutput v_2 = v_1;
-  return v_2;
-}
-
-vertex_main_outputs vertex_main() {
-  VertexOutput v_3 = vertex_main_inner();
-  vertex_main_outputs v_4 = {v_3.prevent_dce, v_3.pos};
-  return v_4;
-}
-
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 2eb349d..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_eb510f() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_eb510f()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_eb510f() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_eb510f()));
-  return;
-}
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 2eb349d..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_eb510f() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_eb510f()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_eb510f() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_eb510f()));
-  return;
-}
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 76770e8..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_eb510f() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_eb510f());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_eb510f() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_eb510f());
-}
-
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 76770e8..0000000
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_eb510f() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_eb510f());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_eb510f() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_eb510f());
-}
-
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl
similarity index 90%
rename from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl
index 7f1d3b2..e425fbf 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2022 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -47,17 +47,17 @@
 };
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-// fn arrayLength(ptr<storage, array<f16>, read_write>) -> u32
-fn arrayLength_cbd6b5() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<f16>, read_write>) -> u32
+fn arrayLength_fd35e2() -> u32{
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_cbd6b5();
+  prevent_dce = arrayLength_fd35e2();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_cbd6b5();
+  prevent_dce = arrayLength_fd35e2();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.dxc.hlsl
similarity index 79%
rename from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.dxc.hlsl
index bda931f..14b418e 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cbd6b5()));
+  prevent_dce.Store(0u, asuint(arrayLength_fd35e2()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cbd6b5()));
+  prevent_dce.Store(0u, asuint(arrayLength_fd35e2()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.fxc.hlsl
similarity index 79%
copy from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.fxc.hlsl
index bda931f..14b418e 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cbd6b5()));
+  prevent_dce.Store(0u, asuint(arrayLength_fd35e2()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cbd6b5()));
+  prevent_dce.Store(0u, asuint(arrayLength_fd35e2()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.glsl
similarity index 85%
rename from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.glsl
index c3492ac..f0c9fe4 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.glsl
@@ -14,12 +14,12 @@
 buffer f_SB_RW_ssbo {
   float16_t arg_0[];
 } sb_rw;
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_cbd6b5();
+  v.inner = arrayLength_fd35e2();
 }
 //
 // compute_main
@@ -35,11 +35,11 @@
 buffer SB_RW_1_ssbo {
   float16_t arg_0[];
 } sb_rw;
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_cbd6b5();
+  v.inner = arrayLength_fd35e2();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.ir.dxc.hlsl
similarity index 75%
rename from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.ir.dxc.hlsl
index f458ee9..0bf6037 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 2u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cbd6b5());
+  prevent_dce.Store(0u, arrayLength_fd35e2());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 2u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cbd6b5());
+  prevent_dce.Store(0u, arrayLength_fd35e2());
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.ir.fxc.hlsl
similarity index 75%
copy from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.ir.fxc.hlsl
index f458ee9..0bf6037 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 2u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cbd6b5());
+  prevent_dce.Store(0u, arrayLength_fd35e2());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 2u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cbd6b5());
+  prevent_dce.Store(0u, arrayLength_fd35e2());
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.ir.msl
similarity index 91%
rename from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.msl
rename to test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.ir.msl
index b892b82..3ab6ddb 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_cbd6b5(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_fd35e2(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 2u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_cbd6b5(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_fd35e2(tint_module_vars);
 }
 //
 // compute_main
@@ -63,12 +63,12 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_cbd6b5(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_fd35e2(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 2u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_cbd6b5(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_fd35e2(tint_module_vars);
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.msl b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.msl
similarity index 89%
rename from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.msl
index 8c8026f..c3cdc02 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.msl
@@ -25,13 +25,13 @@
   tint_array<half, 1> arg_0;
 };
 
-uint arrayLength_cbd6b5(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_fd35e2(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 2u);
   return res;
 }
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cbd6b5(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_fd35e2(tint_symbol_2);
   return;
 }
 
@@ -62,13 +62,13 @@
   tint_array<half, 1> arg_0;
 };
 
-uint arrayLength_cbd6b5(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_fd35e2(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 2u);
   return res;
 }
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cbd6b5(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_fd35e2(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.spvasm
similarity index 94%
rename from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.spvasm
rename to test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.spvasm
index 71090ca..8c214db 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.spvasm
@@ -18,7 +18,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_cbd6b5 "arrayLength_cbd6b5"
+               OpName %arrayLength_fd35e2 "arrayLength_fd35e2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -48,7 +48,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cbd6b5 = OpFunction %uint None %11
+%arrayLength_fd35e2 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_rw %uint_0
@@ -59,7 +59,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_cbd6b5
+         %24 = OpFunctionCall %uint %arrayLength_fd35e2
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -84,7 +84,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_cbd6b5 "arrayLength_cbd6b5"
+               OpName %arrayLength_fd35e2 "arrayLength_fd35e2"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -114,7 +114,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cbd6b5 = OpFunction %uint None %11
+%arrayLength_fd35e2 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_rw %uint_0
@@ -125,7 +125,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_cbd6b5
+         %24 = OpFunctionCall %uint %arrayLength_fd35e2
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.wgsl
similarity index 75%
rename from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.wgsl
rename to test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.wgsl
index ddbce3b..a73c60c 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/fd35e2.wgsl.expected.wgsl
@@ -8,17 +8,17 @@
 
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-fn arrayLength_cbd6b5() -> u32 {
+fn arrayLength_fd35e2() -> u32 {
   var res : u32 = arrayLength(&(sb_rw.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_cbd6b5();
+  prevent_dce = arrayLength_fd35e2();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_cbd6b5();
+  prevent_dce = arrayLength_fd35e2();
 }
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.dxc.hlsl
deleted file mode 100644
index c638623..0000000
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_1588cd() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_1588cd() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
-  return;
-}
-//
-// vertex_main
-//
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_1588cd() {
-  uint tint_symbol_3 = 0u;
-  sb_ro.GetDimensions(tint_symbol_3);
-  uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
-  uint res = tint_symbol_4;
-  return res;
-}
-
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-struct tint_symbol_1 {
-  nointerpolation uint prevent_dce : TEXCOORD0;
-  float4 pos : SV_Position;
-};
-
-VertexOutput vertex_main_inner() {
-  VertexOutput tint_symbol = (VertexOutput)0;
-  tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_1588cd();
-  return tint_symbol;
-}
-
-tint_symbol_1 vertex_main() {
-  VertexOutput inner_result = vertex_main_inner();
-  tint_symbol_1 wrapper_result = (tint_symbol_1)0;
-  wrapper_result.pos = inner_result.pos;
-  wrapper_result.prevent_dce = inner_result.prevent_dce;
-  return wrapper_result;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.fxc.hlsl
deleted file mode 100644
index c638623..0000000
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_1588cd() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_1588cd() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
-  return;
-}
-//
-// vertex_main
-//
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_1588cd() {
-  uint tint_symbol_3 = 0u;
-  sb_ro.GetDimensions(tint_symbol_3);
-  uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
-  uint res = tint_symbol_4;
-  return res;
-}
-
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-struct tint_symbol_1 {
-  nointerpolation uint prevent_dce : TEXCOORD0;
-  float4 pos : SV_Position;
-};
-
-VertexOutput vertex_main_inner() {
-  VertexOutput tint_symbol = (VertexOutput)0;
-  tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_1588cd();
-  return tint_symbol;
-}
-
-tint_symbol_1 vertex_main() {
-  VertexOutput inner_result = vertex_main_inner();
-  tint_symbol_1 wrapper_result = (tint_symbol_1)0;
-  wrapper_result.pos = inner_result.pos;
-  wrapper_result.prevent_dce = inner_result.prevent_dce;
-  return wrapper_result;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.glsl
deleted file mode 100644
index 073776b..0000000
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.glsl
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// fragment_main
-//
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(binding = 0, std430)
-buffer f_prevent_dce_block_ssbo {
-  uint inner;
-} v;
-layout(binding = 1, std430)
-buffer f_SB_RO_ssbo {
-  int arg_0[];
-} sb_ro;
-uint arrayLength_1588cd() {
-  uint res = uint(sb_ro.arg_0.length());
-  return res;
-}
-void main() {
-  v.inner = arrayLength_1588cd();
-}
-//
-// compute_main
-//
-#version 310 es
-
-layout(binding = 0, std430)
-buffer prevent_dce_block_1_ssbo {
-  uint inner;
-} v;
-layout(binding = 1, std430)
-buffer SB_RO_1_ssbo {
-  int arg_0[];
-} sb_ro;
-uint arrayLength_1588cd() {
-  uint res = uint(sb_ro.arg_0.length());
-  return res;
-}
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  v.inner = arrayLength_1588cd();
-}
-//
-// vertex_main
-//
-#version 310 es
-
-
-struct VertexOutput {
-  vec4 pos;
-  uint prevent_dce;
-};
-
-layout(binding = 1, std430)
-buffer v_SB_RO_ssbo {
-  int arg_0[];
-} sb_ro;
-layout(location = 0) flat out uint tint_interstage_location0;
-uint arrayLength_1588cd() {
-  uint res = uint(sb_ro.arg_0.length());
-  return res;
-}
-VertexOutput vertex_main_inner() {
-  VertexOutput v = VertexOutput(vec4(0.0f), 0u);
-  v.pos = vec4(0.0f);
-  v.prevent_dce = arrayLength_1588cd();
-  return v;
-}
-void main() {
-  VertexOutput v_1 = vertex_main_inner();
-  gl_Position = vec4(v_1.pos.x, -(v_1.pos.y), ((2.0f * v_1.pos.z) - v_1.pos.w), v_1.pos.w);
-  tint_interstage_location0 = v_1.prevent_dce;
-  gl_PointSize = 1.0f;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 2759460..0000000
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_1588cd() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_1588cd());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_1588cd() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_1588cd());
-}
-
-//
-// vertex_main
-//
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-
-struct vertex_main_outputs {
-  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
-  float4 VertexOutput_pos : SV_Position;
-};
-
-
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_1588cd() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-VertexOutput vertex_main_inner() {
-  VertexOutput v_1 = (VertexOutput)0;
-  v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_1588cd();
-  VertexOutput v_2 = v_1;
-  return v_2;
-}
-
-vertex_main_outputs vertex_main() {
-  VertexOutput v_3 = vertex_main_inner();
-  vertex_main_outputs v_4 = {v_3.prevent_dce, v_3.pos};
-  return v_4;
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 2759460..0000000
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_1588cd() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_1588cd());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_1588cd() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_1588cd());
-}
-
-//
-// vertex_main
-//
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-
-struct vertex_main_outputs {
-  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
-  float4 VertexOutput_pos : SV_Position;
-};
-
-
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_1588cd() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-VertexOutput vertex_main_inner() {
-  VertexOutput v_1 = (VertexOutput)0;
-  v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_1588cd();
-  VertexOutput v_2 = v_1;
-  return v_2;
-}
-
-vertex_main_outputs vertex_main() {
-  VertexOutput v_3 = vertex_main_inner();
-  vertex_main_outputs v_4 = {v_3.prevent_dce, v_3.pos};
-  return v_4;
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.spvasm
deleted file mode 100644
index 02c203d..0000000
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.spvasm
+++ /dev/null
@@ -1,221 +0,0 @@
-;
-; fragment_main
-;
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 27
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %SB_RO "SB_RO"
-               OpName %sb_ro "sb_ro"
-               OpName %arrayLength_1588cd "arrayLength_1588cd"
-               OpName %res "res"
-               OpName %fragment_main "fragment_main"
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce_block Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %1 Coherent
-               OpDecorate %_runtimearr_int ArrayStride 4
-               OpMemberDecorate %SB_RO 0 Offset 0
-               OpDecorate %SB_RO Block
-               OpDecorate %sb_ro DescriptorSet 0
-               OpDecorate %sb_ro Binding 1
-               OpDecorate %sb_ro NonWritable
-       %uint = OpTypeInt 32 0
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
-        %int = OpTypeInt 32 1
-%_runtimearr_int = OpTypeRuntimeArray %int
-      %SB_RO = OpTypeStruct %_runtimearr_int
-%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
-      %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
-         %11 = OpTypeFunction %uint
-%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
-     %uint_0 = OpConstant %uint 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-       %void = OpTypeVoid
-         %22 = OpTypeFunction %void
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_1588cd = OpFunction %uint None %11
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function
-         %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_ro %uint_0
-         %16 = OpArrayLength %uint %sb_ro 0
-               OpStore %res %16
-         %19 = OpLoad %uint %res None
-               OpReturnValue %19
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %22
-         %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_1588cd
-         %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
-               OpStore %25 %24 None
-               OpReturn
-               OpFunctionEnd
-;
-; compute_main
-;
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 27
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %SB_RO "SB_RO"
-               OpName %sb_ro "sb_ro"
-               OpName %arrayLength_1588cd "arrayLength_1588cd"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce_block Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %1 Coherent
-               OpDecorate %_runtimearr_int ArrayStride 4
-               OpMemberDecorate %SB_RO 0 Offset 0
-               OpDecorate %SB_RO Block
-               OpDecorate %sb_ro DescriptorSet 0
-               OpDecorate %sb_ro Binding 1
-               OpDecorate %sb_ro NonWritable
-       %uint = OpTypeInt 32 0
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
-        %int = OpTypeInt 32 1
-%_runtimearr_int = OpTypeRuntimeArray %int
-      %SB_RO = OpTypeStruct %_runtimearr_int
-%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
-      %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
-         %11 = OpTypeFunction %uint
-%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
-     %uint_0 = OpConstant %uint 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-       %void = OpTypeVoid
-         %22 = OpTypeFunction %void
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_1588cd = OpFunction %uint None %11
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function
-         %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_ro %uint_0
-         %16 = OpArrayLength %uint %sb_ro 0
-               OpStore %res %16
-         %19 = OpLoad %uint %res None
-               OpReturnValue %19
-               OpFunctionEnd
-%compute_main = OpFunction %void None %22
-         %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_1588cd
-         %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
-               OpStore %25 %24 None
-               OpReturn
-               OpFunctionEnd
-;
-; vertex_main
-;
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 47
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %vertex_main_position_Output %vertex_main_loc0_Output %vertex_main___point_size_Output
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %SB_RO "SB_RO"
-               OpName %sb_ro "sb_ro"
-               OpName %vertex_main_position_Output "vertex_main_position_Output"
-               OpName %vertex_main_loc0_Output "vertex_main_loc0_Output"
-               OpName %vertex_main___point_size_Output "vertex_main___point_size_Output"
-               OpName %arrayLength_1588cd "arrayLength_1588cd"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpMemberName %VertexOutput 0 "pos"
-               OpMemberName %VertexOutput 1 "prevent_dce"
-               OpName %VertexOutput "VertexOutput"
-               OpName %out "out"
-               OpName %vertex_main "vertex_main"
-               OpDecorate %_runtimearr_int ArrayStride 4
-               OpMemberDecorate %SB_RO 0 Offset 0
-               OpDecorate %SB_RO Block
-               OpDecorate %sb_ro DescriptorSet 0
-               OpDecorate %sb_ro Binding 1
-               OpDecorate %sb_ro NonWritable
-               OpDecorate %vertex_main_position_Output BuiltIn Position
-               OpDecorate %vertex_main_loc0_Output Location 0
-               OpDecorate %vertex_main_loc0_Output Flat
-               OpDecorate %vertex_main___point_size_Output BuiltIn PointSize
-               OpMemberDecorate %VertexOutput 0 Offset 0
-               OpMemberDecorate %VertexOutput 1 Offset 16
-        %int = OpTypeInt 32 1
-%_runtimearr_int = OpTypeRuntimeArray %int
-      %SB_RO = OpTypeStruct %_runtimearr_int
-%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
-      %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%vertex_main_position_Output = OpVariable %_ptr_Output_v4float Output
-       %uint = OpTypeInt 32 0
-%_ptr_Output_uint = OpTypePointer Output %uint
-%vertex_main_loc0_Output = OpVariable %_ptr_Output_uint Output
-%_ptr_Output_float = OpTypePointer Output %float
-%vertex_main___point_size_Output = OpVariable %_ptr_Output_float Output
-         %16 = OpTypeFunction %uint
-%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
-     %uint_0 = OpConstant %uint 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-%VertexOutput = OpTypeStruct %v4float %uint
-         %27 = OpTypeFunction %VertexOutput
-%_ptr_Function_VertexOutput = OpTypePointer Function %VertexOutput
-         %31 = OpConstantNull %VertexOutput
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %34 = OpConstantNull %v4float
-     %uint_1 = OpConstant %uint 1
-       %void = OpTypeVoid
-         %41 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
-%arrayLength_1588cd = OpFunction %uint None %16
-         %17 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function
-         %18 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_ro %uint_0
-         %21 = OpArrayLength %uint %sb_ro 0
-               OpStore %res %21
-         %24 = OpLoad %uint %res None
-               OpReturnValue %24
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %VertexOutput None %27
-         %28 = OpLabel
-        %out = OpVariable %_ptr_Function_VertexOutput Function %31
-         %32 = OpAccessChain %_ptr_Function_v4float %out %uint_0
-               OpStore %32 %34 None
-         %35 = OpAccessChain %_ptr_Function_uint %out %uint_1
-         %37 = OpFunctionCall %uint %arrayLength_1588cd
-               OpStore %35 %37 None
-         %38 = OpLoad %VertexOutput %out None
-               OpReturnValue %38
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %41
-         %42 = OpLabel
-         %43 = OpFunctionCall %VertexOutput %vertex_main_inner
-         %44 = OpCompositeExtract %v4float %43 0
-               OpStore %vertex_main_position_Output %44 None
-         %45 = OpCompositeExtract %uint %43 1
-               OpStore %vertex_main_loc0_Output %45 None
-               OpStore %vertex_main___point_size_Output %float_1 None
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.wgsl
deleted file mode 100644
index b00ac77..0000000
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.wgsl
+++ /dev/null
@@ -1,37 +0,0 @@
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
-struct SB_RO {
-  arg_0 : array<i32>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn arrayLength_1588cd() -> u32 {
-  var res : u32 = arrayLength(&(sb_ro.arg_0));
-  return res;
-}
-
-@fragment
-fn fragment_main() {
-  prevent_dce = arrayLength_1588cd();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  prevent_dce = arrayLength_1588cd();
-}
-
-struct VertexOutput {
-  @builtin(position)
-  pos : vec4<f32>,
-  @location(0) @interpolate(flat)
-  prevent_dce : u32,
-}
-
-@vertex
-fn vertex_main() -> VertexOutput {
-  var out : VertexOutput;
-  out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_1588cd();
-  return out;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl
similarity index 90%
rename from test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl
rename to test/tint/builtins/gen/var/arrayLength/1cf529.wgsl
index 3e228f6..ab4ddae 100644
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2021 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -42,19 +42,19 @@
 };
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-// fn arrayLength(ptr<storage, array<u32>, read>) -> u32
-fn arrayLength_cfca0a() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<u32>, read>) -> u32
+fn arrayLength_1cf529() -> u32{
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_cfca0a();
+  prevent_dce = arrayLength_1cf529();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_cfca0a();
+  prevent_dce = arrayLength_1cf529();
 }
 
 struct VertexOutput {
@@ -66,6 +66,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_cfca0a();
+  out.prevent_dce = arrayLength_1cf529();
   return out;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.dxc.hlsl
similarity index 85%
copy from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.dxc.hlsl
index c638623..a6867f4 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_1cf529() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_1cf529()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_1cf529() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_1cf529()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_1cf529() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_1588cd();
+  tint_symbol.prevent_dce = arrayLength_1cf529();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.fxc.hlsl
similarity index 85%
copy from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.fxc.hlsl
index c638623..a6867f4 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_1cf529() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_1cf529()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_1cf529() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_1cf529()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_1cf529() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_1588cd();
+  tint_symbol.prevent_dce = arrayLength_1cf529();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.glsl
similarity index 86%
copy from test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.glsl
index 5a013be..853185a 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 buffer f_SB_RO_ssbo {
   uint arg_0[];
 } sb_ro;
-uint arrayLength_cfca0a() {
+uint arrayLength_1cf529() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_cfca0a();
+  v.inner = arrayLength_1cf529();
 }
 //
 // compute_main
@@ -33,13 +33,13 @@
 buffer SB_RO_1_ssbo {
   uint arg_0[];
 } sb_ro;
-uint arrayLength_cfca0a() {
+uint arrayLength_1cf529() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_cfca0a();
+  v.inner = arrayLength_1cf529();
 }
 //
 // vertex_main
@@ -57,14 +57,14 @@
   uint arg_0[];
 } sb_ro;
 layout(location = 0) flat out uint tint_interstage_location0;
-uint arrayLength_cfca0a() {
+uint arrayLength_1cf529() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 VertexOutput vertex_main_inner() {
   VertexOutput v = VertexOutput(vec4(0.0f), 0u);
   v.pos = vec4(0.0f);
-  v.prevent_dce = arrayLength_cfca0a();
+  v.prevent_dce = arrayLength_1cf529();
   return v;
 }
 void main() {
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.ir.dxc.hlsl
similarity index 83%
copy from test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.ir.dxc.hlsl
index ccc8aa4..b8445c9 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_1cf529() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_1cf529());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_1cf529() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_1cf529());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_1cf529() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_a0f5ca();
+  v_1.prevent_dce = arrayLength_1cf529();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.ir.fxc.hlsl
similarity index 83%
copy from test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.ir.fxc.hlsl
index ccc8aa4..b8445c9 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_1cf529() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_1cf529());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_1cf529() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_1cf529());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_1cf529() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_a0f5ca();
+  v_1.prevent_dce = arrayLength_1cf529();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.ir.msl
similarity index 92%
copy from test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.msl
copy to test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.ir.msl
index ee7406e..9c53b31 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_cfca0a(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_1cf529(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_cfca0a(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_1cf529(tint_module_vars);
 }
 //
 // compute_main
@@ -63,14 +63,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_cfca0a(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_1cf529(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_cfca0a(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_1cf529(tint_module_vars);
 }
 //
 // vertex_main
@@ -109,7 +109,7 @@
   uint VertexOutput_prevent_dce [[user(locn0)]] [[flat]];
 };
 
-uint arrayLength_cfca0a(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_1cf529(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
@@ -117,7 +117,7 @@
 VertexOutput vertex_main_inner(tint_module_vars_struct tint_module_vars) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_cfca0a(tint_module_vars);
+  out.prevent_dce = arrayLength_1cf529(tint_module_vars);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.msl b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.msl
similarity index 91%
rename from test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.msl
rename to test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.msl
index 904bf902..781f5a4 100644
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.msl
@@ -25,7 +25,7 @@
   tint_array<uint, 1> arg_0;
 };
 
-uint arrayLength_cfca0a(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_1cf529(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -36,7 +36,7 @@
 };
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cfca0a(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_1cf529(tint_symbol_2);
   return;
 }
 
@@ -67,7 +67,7 @@
   tint_array<uint, 1> arg_0;
 };
 
-uint arrayLength_cfca0a(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_1cf529(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -78,7 +78,7 @@
 };
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cfca0a(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_1cf529(tint_symbol_2);
   return;
 }
 
@@ -109,7 +109,7 @@
   tint_array<uint, 1> arg_0;
 };
 
-uint arrayLength_cfca0a(const constant TintArrayLengths* const tint_symbol_1) {
+uint arrayLength_1cf529(const constant TintArrayLengths* const tint_symbol_1) {
   uint res = (((*(tint_symbol_1)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -127,7 +127,7 @@
 VertexOutput vertex_main_inner(const constant TintArrayLengths* const tint_symbol_2) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_cfca0a(tint_symbol_2);
+  out.prevent_dce = arrayLength_1cf529(tint_symbol_2);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.spvasm
similarity index 94%
copy from test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.spvasm
copy to test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.spvasm
index 3c9e03b..3ae0569 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.spvasm
@@ -15,7 +15,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_cfca0a "arrayLength_cfca0a"
+               OpName %arrayLength_1cf529 "arrayLength_1cf529"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -44,7 +44,7 @@
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cfca0a = OpFunction %uint None %10
+%arrayLength_1cf529 = OpFunction %uint None %10
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %12 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_ro %uint_0
@@ -55,7 +55,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %21
          %22 = OpLabel
-         %23 = OpFunctionCall %uint %arrayLength_cfca0a
+         %23 = OpFunctionCall %uint %arrayLength_1cf529
          %24 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %24 %23 None
                OpReturn
@@ -77,7 +77,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_cfca0a "arrayLength_cfca0a"
+               OpName %arrayLength_1cf529 "arrayLength_1cf529"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -106,7 +106,7 @@
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cfca0a = OpFunction %uint None %10
+%arrayLength_1cf529 = OpFunction %uint None %10
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %12 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_ro %uint_0
@@ -117,7 +117,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %21
          %22 = OpLabel
-         %23 = OpFunctionCall %uint %arrayLength_cfca0a
+         %23 = OpFunctionCall %uint %arrayLength_1cf529
          %24 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %24 %23 None
                OpReturn
@@ -139,7 +139,7 @@
                OpName %vertex_main_position_Output "vertex_main_position_Output"
                OpName %vertex_main_loc0_Output "vertex_main_loc0_Output"
                OpName %vertex_main___point_size_Output "vertex_main___point_size_Output"
-               OpName %arrayLength_cfca0a "arrayLength_cfca0a"
+               OpName %arrayLength_1cf529 "arrayLength_1cf529"
                OpName %res "res"
                OpName %vertex_main_inner "vertex_main_inner"
                OpMemberName %VertexOutput 0 "pos"
@@ -186,7 +186,7 @@
        %void = OpTypeVoid
          %40 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-%arrayLength_cfca0a = OpFunction %uint None %15
+%arrayLength_1cf529 = OpFunction %uint None %15
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %17 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_ro %uint_0
@@ -201,7 +201,7 @@
          %31 = OpAccessChain %_ptr_Function_v4float %out %uint_0
                OpStore %31 %33 None
          %34 = OpAccessChain %_ptr_Function_uint %out %uint_1
-         %36 = OpFunctionCall %uint %arrayLength_cfca0a
+         %36 = OpFunctionCall %uint %arrayLength_1cf529
                OpStore %34 %36 None
          %37 = OpLoad %VertexOutput %out None
                OpReturnValue %37
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.wgsl
similarity index 78%
copy from test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.wgsl
copy to test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.wgsl
index c1b2368..198d8d6 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.wgsl
@@ -6,19 +6,19 @@
 
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-fn arrayLength_cfca0a() -> u32 {
+fn arrayLength_1cf529() -> u32 {
   var res : u32 = arrayLength(&(sb_ro.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_cfca0a();
+  prevent_dce = arrayLength_1cf529();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_cfca0a();
+  prevent_dce = arrayLength_1cf529();
 }
 
 struct VertexOutput {
@@ -32,6 +32,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_cfca0a();
+  out.prevent_dce = arrayLength_1cf529();
   return out;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl
similarity index 90%
copy from test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl
copy to test/tint/builtins/gen/var/arrayLength/23a62c.wgsl
index ba8e087..58be547 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2021 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -42,17 +42,17 @@
 };
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-// fn arrayLength(ptr<storage, array<u32>, read_write>) -> u32
-fn arrayLength_eb510f() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<u32>, read_write>) -> u32
+fn arrayLength_23a62c() -> u32{
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_eb510f();
+  prevent_dce = arrayLength_23a62c();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_eb510f();
+  prevent_dce = arrayLength_23a62c();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.dxc.hlsl
similarity index 79%
copy from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.dxc.hlsl
index 79b0daf..a0e6ff3 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_23a62c() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_23a62c()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_23a62c() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_23a62c()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.fxc.hlsl
similarity index 79%
rename from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.fxc.hlsl
index 79b0daf..a0e6ff3 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_23a62c() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_23a62c()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_23a62c() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_23a62c()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.glsl
similarity index 83%
copy from test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.glsl
index 3559580..4e1c9f3 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 buffer f_SB_RW_ssbo {
   uint arg_0[];
 } sb_rw;
-uint arrayLength_eb510f() {
+uint arrayLength_23a62c() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_eb510f();
+  v.inner = arrayLength_23a62c();
 }
 //
 // compute_main
@@ -33,11 +33,11 @@
 buffer SB_RW_1_ssbo {
   uint arg_0[];
 } sb_rw;
-uint arrayLength_eb510f() {
+uint arrayLength_23a62c() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_eb510f();
+  v.inner = arrayLength_23a62c();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.ir.dxc.hlsl
similarity index 75%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.ir.dxc.hlsl
index 6604b90..ef666c2 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_23a62c() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_23a62c());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_23a62c() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_23a62c());
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.ir.fxc.hlsl
similarity index 75%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.ir.fxc.hlsl
index 6604b90..ef666c2 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_23a62c() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_23a62c());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_23a62c() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_23a62c());
 }
 
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.ir.msl
similarity index 91%
rename from test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.msl
rename to test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.ir.msl
index 94a9121..d8326fd 100644
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_eb510f(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_23a62c(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_eb510f(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_23a62c(tint_module_vars);
 }
 //
 // compute_main
@@ -63,12 +63,12 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_eb510f(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_23a62c(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_eb510f(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_23a62c(tint_module_vars);
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.msl b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.msl
similarity index 89%
copy from test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.msl
copy to test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.msl
index 1e3c402..2103687 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.msl
@@ -25,13 +25,13 @@
   tint_array<uint, 1> arg_0;
 };
 
-uint arrayLength_eb510f(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_23a62c(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_eb510f(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_23a62c(tint_symbol_2);
   return;
 }
 
@@ -62,13 +62,13 @@
   tint_array<uint, 1> arg_0;
 };
 
-uint arrayLength_eb510f(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_23a62c(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_eb510f(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_23a62c(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.spvasm
similarity index 93%
copy from test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.spvasm
copy to test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.spvasm
index 9c47aef..5a67592 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.spvasm
@@ -15,7 +15,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_eb510f "arrayLength_eb510f"
+               OpName %arrayLength_23a62c "arrayLength_23a62c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -44,7 +44,7 @@
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_eb510f = OpFunction %uint None %10
+%arrayLength_23a62c = OpFunction %uint None %10
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %12 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_rw %uint_0
@@ -55,7 +55,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %21
          %22 = OpLabel
-         %23 = OpFunctionCall %uint %arrayLength_eb510f
+         %23 = OpFunctionCall %uint %arrayLength_23a62c
          %24 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %24 %23 None
                OpReturn
@@ -77,7 +77,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_eb510f "arrayLength_eb510f"
+               OpName %arrayLength_23a62c "arrayLength_23a62c"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -106,7 +106,7 @@
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_eb510f = OpFunction %uint None %10
+%arrayLength_23a62c = OpFunction %uint None %10
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %12 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_rw %uint_0
@@ -117,7 +117,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %21
          %22 = OpLabel
-         %23 = OpFunctionCall %uint %arrayLength_eb510f
+         %23 = OpFunctionCall %uint %arrayLength_23a62c
          %24 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %24 %23 None
                OpReturn
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.wgsl
similarity index 74%
copy from test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.wgsl
copy to test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.wgsl
index ec2bb62..1e34ea0 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/23a62c.wgsl.expected.wgsl
@@ -6,17 +6,17 @@
 
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-fn arrayLength_eb510f() -> u32 {
+fn arrayLength_23a62c() -> u32 {
   var res : u32 = arrayLength(&(sb_rw.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_eb510f();
+  prevent_dce = arrayLength_23a62c();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_eb510f();
+  prevent_dce = arrayLength_23a62c();
 }
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl
similarity index 90%
rename from test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl
rename to test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl
index 6339a25..7c0a8dd 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2021 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -42,19 +42,19 @@
 };
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-// fn arrayLength(ptr<storage, array<f32>, read>) -> u32
-fn arrayLength_a0f5ca() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<f32>, read>) -> u32
+fn arrayLength_3a93e6() -> u32{
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_a0f5ca();
+  prevent_dce = arrayLength_3a93e6();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_a0f5ca();
+  prevent_dce = arrayLength_3a93e6();
 }
 
 struct VertexOutput {
@@ -66,6 +66,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_a0f5ca();
+  out.prevent_dce = arrayLength_3a93e6();
   return out;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.dxc.hlsl
similarity index 85%
copy from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.dxc.hlsl
index c638623..6ff89e7 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_3a93e6() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_3a93e6()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_3a93e6() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_3a93e6()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_3a93e6() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_1588cd();
+  tint_symbol.prevent_dce = arrayLength_3a93e6();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.fxc.hlsl
similarity index 85%
rename from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.fxc.hlsl
index c638623..6ff89e7 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_3a93e6() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_3a93e6()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_3a93e6() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_3a93e6()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_3a93e6() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_1588cd();
+  tint_symbol.prevent_dce = arrayLength_3a93e6();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.glsl
similarity index 86%
copy from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.glsl
index b531225..fd6594e 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 buffer f_SB_RO_ssbo {
   float arg_0[];
 } sb_ro;
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_a0f5ca();
+  v.inner = arrayLength_3a93e6();
 }
 //
 // compute_main
@@ -33,13 +33,13 @@
 buffer SB_RO_1_ssbo {
   float arg_0[];
 } sb_ro;
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_a0f5ca();
+  v.inner = arrayLength_3a93e6();
 }
 //
 // vertex_main
@@ -57,14 +57,14 @@
   float arg_0[];
 } sb_ro;
 layout(location = 0) flat out uint tint_interstage_location0;
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 VertexOutput vertex_main_inner() {
   VertexOutput v = VertexOutput(vec4(0.0f), 0u);
   v.pos = vec4(0.0f);
-  v.prevent_dce = arrayLength_a0f5ca();
+  v.prevent_dce = arrayLength_3a93e6();
   return v;
 }
 void main() {
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.ir.dxc.hlsl
similarity index 83%
rename from test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.ir.dxc.hlsl
index ccc8aa4..e95c09c 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_3a93e6());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_3a93e6());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_a0f5ca();
+  v_1.prevent_dce = arrayLength_3a93e6();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.ir.fxc.hlsl
similarity index 83%
rename from test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.ir.fxc.hlsl
index ccc8aa4..e95c09c 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_3a93e6());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_3a93e6());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_3a93e6() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_a0f5ca();
+  v_1.prevent_dce = arrayLength_3a93e6();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.ir.msl
similarity index 92%
copy from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.msl
copy to test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.ir.msl
index 1703b1a..fe66cc7 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_a0f5ca(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_3a93e6(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_a0f5ca(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_3a93e6(tint_module_vars);
 }
 //
 // compute_main
@@ -63,14 +63,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_a0f5ca(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_3a93e6(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_a0f5ca(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_3a93e6(tint_module_vars);
 }
 //
 // vertex_main
@@ -109,7 +109,7 @@
   uint VertexOutput_prevent_dce [[user(locn0)]] [[flat]];
 };
 
-uint arrayLength_a0f5ca(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_3a93e6(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
@@ -117,7 +117,7 @@
 VertexOutput vertex_main_inner(tint_module_vars_struct tint_module_vars) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_a0f5ca(tint_module_vars);
+  out.prevent_dce = arrayLength_3a93e6(tint_module_vars);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.msl b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.msl
similarity index 91%
rename from test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.msl
rename to test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.msl
index b7640cd..d72f18a 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.msl
@@ -25,7 +25,7 @@
   tint_array<float, 1> arg_0;
 };
 
-uint arrayLength_a0f5ca(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_3a93e6(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -36,7 +36,7 @@
 };
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_a0f5ca(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_3a93e6(tint_symbol_2);
   return;
 }
 
@@ -67,7 +67,7 @@
   tint_array<float, 1> arg_0;
 };
 
-uint arrayLength_a0f5ca(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_3a93e6(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -78,7 +78,7 @@
 };
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_a0f5ca(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_3a93e6(tint_symbol_2);
   return;
 }
 
@@ -109,7 +109,7 @@
   tint_array<float, 1> arg_0;
 };
 
-uint arrayLength_a0f5ca(const constant TintArrayLengths* const tint_symbol_1) {
+uint arrayLength_3a93e6(const constant TintArrayLengths* const tint_symbol_1) {
   uint res = (((*(tint_symbol_1)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -127,7 +127,7 @@
 VertexOutput vertex_main_inner(const constant TintArrayLengths* const tint_symbol_2) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_a0f5ca(tint_symbol_2);
+  out.prevent_dce = arrayLength_3a93e6(tint_symbol_2);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.spvasm
similarity index 94%
copy from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.spvasm
copy to test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.spvasm
index 05c891c..0af292a 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.spvasm
@@ -15,7 +15,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_a0f5ca "arrayLength_a0f5ca"
+               OpName %arrayLength_3a93e6 "arrayLength_3a93e6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -45,7 +45,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_a0f5ca = OpFunction %uint None %11
+%arrayLength_3a93e6 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_ro %uint_0
@@ -56,7 +56,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_a0f5ca
+         %24 = OpFunctionCall %uint %arrayLength_3a93e6
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -78,7 +78,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_a0f5ca "arrayLength_a0f5ca"
+               OpName %arrayLength_3a93e6 "arrayLength_3a93e6"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -108,7 +108,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_a0f5ca = OpFunction %uint None %11
+%arrayLength_3a93e6 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_ro %uint_0
@@ -119,7 +119,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_a0f5ca
+         %24 = OpFunctionCall %uint %arrayLength_3a93e6
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -141,7 +141,7 @@
                OpName %vertex_main_position_Output "vertex_main_position_Output"
                OpName %vertex_main_loc0_Output "vertex_main_loc0_Output"
                OpName %vertex_main___point_size_Output "vertex_main___point_size_Output"
-               OpName %arrayLength_a0f5ca "arrayLength_a0f5ca"
+               OpName %arrayLength_3a93e6 "arrayLength_3a93e6"
                OpName %res "res"
                OpName %vertex_main_inner "vertex_main_inner"
                OpMemberName %VertexOutput 0 "pos"
@@ -188,7 +188,7 @@
        %void = OpTypeVoid
          %40 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-%arrayLength_a0f5ca = OpFunction %uint None %15
+%arrayLength_3a93e6 = OpFunction %uint None %15
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %17 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_ro %uint_0
@@ -203,7 +203,7 @@
          %31 = OpAccessChain %_ptr_Function_v4float %out %uint_0
                OpStore %31 %33 None
          %34 = OpAccessChain %_ptr_Function_uint %out %uint_1
-         %36 = OpFunctionCall %uint %arrayLength_a0f5ca
+         %36 = OpFunctionCall %uint %arrayLength_3a93e6
                OpStore %34 %36 None
          %37 = OpLoad %VertexOutput %out None
                OpReturnValue %37
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.wgsl
similarity index 78%
copy from test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.wgsl
copy to test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.wgsl
index 49a5398..7d632b9 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.wgsl
@@ -6,19 +6,19 @@
 
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-fn arrayLength_a0f5ca() -> u32 {
+fn arrayLength_3a93e6() -> u32 {
   var res : u32 = arrayLength(&(sb_ro.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_a0f5ca();
+  prevent_dce = arrayLength_3a93e6();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_a0f5ca();
+  prevent_dce = arrayLength_3a93e6();
 }
 
 struct VertexOutput {
@@ -32,6 +32,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_a0f5ca();
+  out.prevent_dce = arrayLength_3a93e6();
   return out;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl
similarity index 90%
copy from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl
copy to test/tint/builtins/gen/var/arrayLength/429cb6.wgsl
index f093818..fc35ecc 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2021 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -42,17 +42,17 @@
 };
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-// fn arrayLength(ptr<storage, array<i32>, read_write>) -> u32
-fn arrayLength_61b1c7() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<i32>, read_write>) -> u32
+fn arrayLength_429cb6() -> u32{
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_61b1c7();
+  prevent_dce = arrayLength_429cb6();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_61b1c7();
+  prevent_dce = arrayLength_429cb6();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.dxc.hlsl
similarity index 79%
copy from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.dxc.hlsl
index 79b0daf..d4eabf9 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_429cb6() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_429cb6()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_429cb6() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_429cb6()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.fxc.hlsl
similarity index 79%
copy from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.fxc.hlsl
index 79b0daf..d4eabf9 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_429cb6() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_429cb6()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_429cb6() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_429cb6()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.glsl
similarity index 83%
copy from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.glsl
index fe278f3..4574e24 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 buffer f_SB_RW_ssbo {
   int arg_0[];
 } sb_rw;
-uint arrayLength_61b1c7() {
+uint arrayLength_429cb6() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_61b1c7();
+  v.inner = arrayLength_429cb6();
 }
 //
 // compute_main
@@ -33,11 +33,11 @@
 buffer SB_RW_1_ssbo {
   int arg_0[];
 } sb_rw;
-uint arrayLength_61b1c7() {
+uint arrayLength_429cb6() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_61b1c7();
+  v.inner = arrayLength_429cb6();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.ir.dxc.hlsl
similarity index 75%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.ir.dxc.hlsl
index 6604b90..8747e2e 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_429cb6() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_429cb6());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_429cb6() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_429cb6());
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.ir.fxc.hlsl
similarity index 75%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.ir.fxc.hlsl
index 6604b90..8747e2e 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_429cb6() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_429cb6());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_429cb6() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_429cb6());
 }
 
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.ir.msl
similarity index 91%
rename from test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.msl
rename to test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.ir.msl
index cf0c802..bf352b6 100644
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_61b1c7(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_429cb6(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_61b1c7(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_429cb6(tint_module_vars);
 }
 //
 // compute_main
@@ -63,12 +63,12 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_61b1c7(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_429cb6(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_61b1c7(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_429cb6(tint_module_vars);
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.msl b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.msl
similarity index 89%
copy from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.msl
copy to test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.msl
index 7561e67..19e5c7a 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.msl
@@ -25,13 +25,13 @@
   tint_array<int, 1> arg_0;
 };
 
-uint arrayLength_61b1c7(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_429cb6(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_61b1c7(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_429cb6(tint_symbol_2);
   return;
 }
 
@@ -62,13 +62,13 @@
   tint_array<int, 1> arg_0;
 };
 
-uint arrayLength_61b1c7(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_429cb6(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_61b1c7(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_429cb6(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.spvasm
similarity index 93%
copy from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.spvasm
copy to test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.spvasm
index f8d5841..cb2f9b3 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.spvasm
@@ -15,7 +15,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_61b1c7 "arrayLength_61b1c7"
+               OpName %arrayLength_429cb6 "arrayLength_429cb6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -45,7 +45,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_61b1c7 = OpFunction %uint None %11
+%arrayLength_429cb6 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_rw %uint_0
@@ -56,7 +56,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_61b1c7
+         %24 = OpFunctionCall %uint %arrayLength_429cb6
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -78,7 +78,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_61b1c7 "arrayLength_61b1c7"
+               OpName %arrayLength_429cb6 "arrayLength_429cb6"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -108,7 +108,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_61b1c7 = OpFunction %uint None %11
+%arrayLength_429cb6 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_rw %uint_0
@@ -119,7 +119,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_61b1c7
+         %24 = OpFunctionCall %uint %arrayLength_429cb6
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.wgsl
similarity index 74%
copy from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.wgsl
copy to test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.wgsl
index 256b54d..4897c09 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/429cb6.wgsl.expected.wgsl
@@ -6,17 +6,17 @@
 
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-fn arrayLength_61b1c7() -> u32 {
+fn arrayLength_429cb6() -> u32 {
   var res : u32 = arrayLength(&(sb_rw.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_61b1c7();
+  prevent_dce = arrayLength_429cb6();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_61b1c7();
+  prevent_dce = arrayLength_429cb6();
 }
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl
deleted file mode 100644
index f093818..0000000
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2021 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
-struct SB_RW {
-  arg_0: array<i32>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn arrayLength(ptr<storage, array<i32>, read_write>) -> u32
-fn arrayLength_61b1c7() -> u32{
-  var res: u32 = arrayLength(&sb_rw.arg_0);
-  return res;
-}
-@fragment
-fn fragment_main() {
-  prevent_dce = arrayLength_61b1c7();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  prevent_dce = arrayLength_61b1c7();
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 79b0daf..0000000
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_61b1c7() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_61b1c7() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
-  return;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 79b0daf..0000000
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_61b1c7() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_61b1c7() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
-  return;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.glsl
deleted file mode 100644
index fe278f3..0000000
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.glsl
+++ /dev/null
@@ -1,43 +0,0 @@
-//
-// fragment_main
-//
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(binding = 0, std430)
-buffer f_prevent_dce_block_ssbo {
-  uint inner;
-} v;
-layout(binding = 1, std430)
-buffer f_SB_RW_ssbo {
-  int arg_0[];
-} sb_rw;
-uint arrayLength_61b1c7() {
-  uint res = uint(sb_rw.arg_0.length());
-  return res;
-}
-void main() {
-  v.inner = arrayLength_61b1c7();
-}
-//
-// compute_main
-//
-#version 310 es
-
-layout(binding = 0, std430)
-buffer prevent_dce_block_1_ssbo {
-  uint inner;
-} v;
-layout(binding = 1, std430)
-buffer SB_RW_1_ssbo {
-  int arg_0[];
-} sb_rw;
-uint arrayLength_61b1c7() {
-  uint res = uint(sb_rw.arg_0.length());
-  return res;
-}
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  v.inner = arrayLength_61b1c7();
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 8775367..0000000
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_61b1c7() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_61b1c7());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_61b1c7() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_61b1c7());
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 8775367..0000000
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_61b1c7() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_61b1c7());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_61b1c7() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_61b1c7());
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.msl b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.msl
deleted file mode 100644
index 7561e67..0000000
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.msl
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// fragment_main
-//
-#include <metal_stdlib>
-
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-    const constant T& operator[](size_t i) const constant { return elements[i]; }
-    device T& operator[](size_t i) device { return elements[i]; }
-    const device T& operator[](size_t i) const device { return elements[i]; }
-    thread T& operator[](size_t i) thread { return elements[i]; }
-    const thread T& operator[](size_t i) const thread { return elements[i]; }
-    threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-    const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-    T elements[N];
-};
-
-struct TintArrayLengths {
-  /* 0x0000 */ tint_array<uint4, 1> array_lengths;
-};
-
-struct SB_RW {
-  tint_array<int, 1> arg_0;
-};
-
-uint arrayLength_61b1c7(const constant TintArrayLengths* const tint_symbol) {
-  uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
-  return res;
-}
-
-fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_61b1c7(tint_symbol_2);
-  return;
-}
-
-//
-// compute_main
-//
-#include <metal_stdlib>
-
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-    const constant T& operator[](size_t i) const constant { return elements[i]; }
-    device T& operator[](size_t i) device { return elements[i]; }
-    const device T& operator[](size_t i) const device { return elements[i]; }
-    thread T& operator[](size_t i) thread { return elements[i]; }
-    const thread T& operator[](size_t i) const thread { return elements[i]; }
-    threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-    const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-    T elements[N];
-};
-
-struct TintArrayLengths {
-  /* 0x0000 */ tint_array<uint4, 1> array_lengths;
-};
-
-struct SB_RW {
-  tint_array<int, 1> arg_0;
-};
-
-uint arrayLength_61b1c7(const constant TintArrayLengths* const tint_symbol) {
-  uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
-  return res;
-}
-
-kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_61b1c7(tint_symbol_2);
-  return;
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.spvasm
deleted file mode 100644
index f8d5841..0000000
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.spvasm
+++ /dev/null
@@ -1,126 +0,0 @@
-;
-; fragment_main
-;
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 27
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %SB_RW 0 "arg_0"
-               OpName %SB_RW "SB_RW"
-               OpName %sb_rw "sb_rw"
-               OpName %arrayLength_61b1c7 "arrayLength_61b1c7"
-               OpName %res "res"
-               OpName %fragment_main "fragment_main"
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce_block Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %1 Coherent
-               OpDecorate %_runtimearr_int ArrayStride 4
-               OpMemberDecorate %SB_RW 0 Offset 0
-               OpDecorate %SB_RW Block
-               OpDecorate %sb_rw DescriptorSet 0
-               OpDecorate %sb_rw Binding 1
-               OpDecorate %sb_rw Coherent
-       %uint = OpTypeInt 32 0
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
-        %int = OpTypeInt 32 1
-%_runtimearr_int = OpTypeRuntimeArray %int
-      %SB_RW = OpTypeStruct %_runtimearr_int
-%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
-      %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
-         %11 = OpTypeFunction %uint
-%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
-     %uint_0 = OpConstant %uint 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-       %void = OpTypeVoid
-         %22 = OpTypeFunction %void
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_61b1c7 = OpFunction %uint None %11
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function
-         %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_rw %uint_0
-         %16 = OpArrayLength %uint %sb_rw 0
-               OpStore %res %16
-         %19 = OpLoad %uint %res None
-               OpReturnValue %19
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %22
-         %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_61b1c7
-         %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
-               OpStore %25 %24 None
-               OpReturn
-               OpFunctionEnd
-;
-; compute_main
-;
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 27
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %SB_RW 0 "arg_0"
-               OpName %SB_RW "SB_RW"
-               OpName %sb_rw "sb_rw"
-               OpName %arrayLength_61b1c7 "arrayLength_61b1c7"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce_block Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %1 Coherent
-               OpDecorate %_runtimearr_int ArrayStride 4
-               OpMemberDecorate %SB_RW 0 Offset 0
-               OpDecorate %SB_RW Block
-               OpDecorate %sb_rw DescriptorSet 0
-               OpDecorate %sb_rw Binding 1
-               OpDecorate %sb_rw Coherent
-       %uint = OpTypeInt 32 0
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
-        %int = OpTypeInt 32 1
-%_runtimearr_int = OpTypeRuntimeArray %int
-      %SB_RW = OpTypeStruct %_runtimearr_int
-%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
-      %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
-         %11 = OpTypeFunction %uint
-%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
-     %uint_0 = OpConstant %uint 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-       %void = OpTypeVoid
-         %22 = OpTypeFunction %void
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_61b1c7 = OpFunction %uint None %11
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function
-         %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_rw %uint_0
-         %16 = OpArrayLength %uint %sb_rw 0
-               OpStore %res %16
-         %19 = OpLoad %uint %res None
-               OpReturnValue %19
-               OpFunctionEnd
-%compute_main = OpFunction %void None %22
-         %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_61b1c7
-         %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
-               OpStore %25 %24 None
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.wgsl
deleted file mode 100644
index 256b54d..0000000
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
-struct SB_RW {
-  arg_0 : array<i32>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn arrayLength_61b1c7() -> u32 {
-  var res : u32 = arrayLength(&(sb_rw.arg_0));
-  return res;
-}
-
-@fragment
-fn fragment_main() {
-  prevent_dce = arrayLength_61b1c7();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  prevent_dce = arrayLength_61b1c7();
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl
deleted file mode 100644
index 4bf5816..0000000
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl
+++ /dev/null
@@ -1,76 +0,0 @@
-// Copyright 2022 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
-struct SB_RO {
-  arg_0: array<f16>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn arrayLength(ptr<storage, array<f16>, read>) -> u32
-fn arrayLength_8421b9() -> u32{
-  var res: u32 = arrayLength(&sb_ro.arg_0);
-  return res;
-}
-@fragment
-fn fragment_main() {
-  prevent_dce = arrayLength_8421b9();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  prevent_dce = arrayLength_8421b9();
-}
-
-struct VertexOutput {
-    @builtin(position) pos: vec4<f32>,
-    @location(0) @interpolate(flat) prevent_dce : u32
-};
-
-@vertex
-fn vertex_main() -> VertexOutput {
-  var out : VertexOutput;
-  out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_8421b9();
-  return out;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.dxc.hlsl
deleted file mode 100644
index d914c06..0000000
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_8421b9() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_8421b9() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
-  return;
-}
-//
-// vertex_main
-//
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_8421b9() {
-  uint tint_symbol_3 = 0u;
-  sb_ro.GetDimensions(tint_symbol_3);
-  uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 2u);
-  uint res = tint_symbol_4;
-  return res;
-}
-
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-struct tint_symbol_1 {
-  nointerpolation uint prevent_dce : TEXCOORD0;
-  float4 pos : SV_Position;
-};
-
-VertexOutput vertex_main_inner() {
-  VertexOutput tint_symbol = (VertexOutput)0;
-  tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_8421b9();
-  return tint_symbol;
-}
-
-tint_symbol_1 vertex_main() {
-  VertexOutput inner_result = vertex_main_inner();
-  tint_symbol_1 wrapper_result = (tint_symbol_1)0;
-  wrapper_result.pos = inner_result.pos;
-  wrapper_result.prevent_dce = inner_result.prevent_dce;
-  return wrapper_result;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.fxc.hlsl
deleted file mode 100644
index d914c06..0000000
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_8421b9() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_8421b9() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
-  return;
-}
-//
-// vertex_main
-//
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_8421b9() {
-  uint tint_symbol_3 = 0u;
-  sb_ro.GetDimensions(tint_symbol_3);
-  uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 2u);
-  uint res = tint_symbol_4;
-  return res;
-}
-
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-struct tint_symbol_1 {
-  nointerpolation uint prevent_dce : TEXCOORD0;
-  float4 pos : SV_Position;
-};
-
-VertexOutput vertex_main_inner() {
-  VertexOutput tint_symbol = (VertexOutput)0;
-  tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_8421b9();
-  return tint_symbol;
-}
-
-tint_symbol_1 vertex_main() {
-  VertexOutput inner_result = vertex_main_inner();
-  tint_symbol_1 wrapper_result = (tint_symbol_1)0;
-  wrapper_result.pos = inner_result.pos;
-  wrapper_result.prevent_dce = inner_result.prevent_dce;
-  return wrapper_result;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.msl
deleted file mode 100644
index c042a03..0000000
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.msl
+++ /dev/null
@@ -1,131 +0,0 @@
-//
-// fragment_main
-//
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<half, 1> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device uint* prevent_dce;
-  const device SB_RO* sb_ro;
-  const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
-};
-
-uint arrayLength_8421b9(tint_module_vars_struct tint_module_vars) {
-  uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 2u);
-  return res;
-}
-
-fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_8421b9(tint_module_vars);
-}
-//
-// compute_main
-//
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<half, 1> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device uint* prevent_dce;
-  const device SB_RO* sb_ro;
-  const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
-};
-
-uint arrayLength_8421b9(tint_module_vars_struct tint_module_vars) {
-  uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 2u);
-  return res;
-}
-
-kernel void compute_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_8421b9(tint_module_vars);
-}
-//
-// vertex_main
-//
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<half, 1> arg_0;
-};
-
-struct tint_module_vars_struct {
-  const device SB_RO* sb_ro;
-  const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
-};
-
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-
-struct vertex_main_outputs {
-  float4 VertexOutput_pos [[position]];
-  uint VertexOutput_prevent_dce [[user(locn0)]] [[flat]];
-};
-
-uint arrayLength_8421b9(tint_module_vars_struct tint_module_vars) {
-  uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 2u);
-  return res;
-}
-
-VertexOutput vertex_main_inner(tint_module_vars_struct tint_module_vars) {
-  VertexOutput out = {};
-  out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_8421b9(tint_module_vars);
-  return out;
-}
-
-vertex vertex_main_outputs vertex_main(const device SB_RO* sb_ro [[buffer(0)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  VertexOutput const v = vertex_main_inner(tint_module_vars);
-  vertex_main_outputs tint_wrapper_result = {};
-  tint_wrapper_result.VertexOutput_pos = v.pos;
-  tint_wrapper_result.VertexOutput_prevent_dce = v.prevent_dce;
-  return tint_wrapper_result;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.wgsl
deleted file mode 100644
index ec5202c..0000000
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.wgsl
+++ /dev/null
@@ -1,39 +0,0 @@
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
-struct SB_RO {
-  arg_0 : array<f16>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn arrayLength_8421b9() -> u32 {
-  var res : u32 = arrayLength(&(sb_ro.arg_0));
-  return res;
-}
-
-@fragment
-fn fragment_main() {
-  prevent_dce = arrayLength_8421b9();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  prevent_dce = arrayLength_8421b9();
-}
-
-struct VertexOutput {
-  @builtin(position)
-  pos : vec4<f32>,
-  @location(0) @interpolate(flat)
-  prevent_dce : u32,
-}
-
-@vertex
-fn vertex_main() -> VertexOutput {
-  var out : VertexOutput;
-  out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_8421b9();
-  return out;
-}
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl
similarity index 90%
copy from test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl
copy to test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl
index 4bf5816..0ad68f8 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2022 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -47,19 +47,19 @@
 };
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-// fn arrayLength(ptr<storage, array<f16>, read>) -> u32
-fn arrayLength_8421b9() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<f16>, read>) -> u32
+fn arrayLength_9ea96d() -> u32{
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_8421b9();
+  prevent_dce = arrayLength_9ea96d();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_8421b9();
+  prevent_dce = arrayLength_9ea96d();
 }
 
 struct VertexOutput {
@@ -71,6 +71,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_8421b9();
+  out.prevent_dce = arrayLength_9ea96d();
   return out;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.dxc.hlsl
similarity index 85%
copy from test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.dxc.hlsl
index d914c06..2ba1804 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
+  prevent_dce.Store(0u, asuint(arrayLength_9ea96d()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
+  prevent_dce.Store(0u, asuint(arrayLength_9ea96d()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 2u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_8421b9();
+  tint_symbol.prevent_dce = arrayLength_9ea96d();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.fxc.hlsl
similarity index 85%
rename from test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.fxc.hlsl
index d914c06..2ba1804 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
+  prevent_dce.Store(0u, asuint(arrayLength_9ea96d()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
+  prevent_dce.Store(0u, asuint(arrayLength_9ea96d()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 2u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_8421b9();
+  tint_symbol.prevent_dce = arrayLength_9ea96d();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.glsl
similarity index 88%
rename from test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.glsl
index 59e4c26..f4666d2 100644
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.glsl
@@ -14,12 +14,12 @@
 buffer f_SB_RO_ssbo {
   float16_t arg_0[];
 } sb_ro;
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_8421b9();
+  v.inner = arrayLength_9ea96d();
 }
 //
 // compute_main
@@ -35,13 +35,13 @@
 buffer SB_RO_1_ssbo {
   float16_t arg_0[];
 } sb_ro;
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_8421b9();
+  v.inner = arrayLength_9ea96d();
 }
 //
 // vertex_main
@@ -60,14 +60,14 @@
   float16_t arg_0[];
 } sb_ro;
 layout(location = 0) flat out uint tint_interstage_location0;
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 VertexOutput vertex_main_inner() {
   VertexOutput v = VertexOutput(vec4(0.0f), 0u);
   v.pos = vec4(0.0f);
-  v.prevent_dce = arrayLength_8421b9();
+  v.prevent_dce = arrayLength_9ea96d();
   return v;
 }
 void main() {
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.ir.dxc.hlsl
similarity index 83%
rename from test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.ir.dxc.hlsl
index d076141..f2a89d7 100644
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 2u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_8421b9());
+  prevent_dce.Store(0u, arrayLength_9ea96d());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 2u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_8421b9());
+  prevent_dce.Store(0u, arrayLength_9ea96d());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 2u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_8421b9();
+  v_1.prevent_dce = arrayLength_9ea96d();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.ir.fxc.hlsl
similarity index 83%
rename from test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.ir.fxc.hlsl
index d076141..f2a89d7 100644
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 2u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_8421b9());
+  prevent_dce.Store(0u, arrayLength_9ea96d());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 2u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_8421b9());
+  prevent_dce.Store(0u, arrayLength_9ea96d());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_8421b9() {
+uint arrayLength_9ea96d() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 2u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_8421b9();
+  v_1.prevent_dce = arrayLength_9ea96d();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.ir.msl
similarity index 92%
copy from test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.msl
copy to test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.ir.msl
index c042a03..9d5d837 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_8421b9(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_9ea96d(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 2u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_8421b9(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_9ea96d(tint_module_vars);
 }
 //
 // compute_main
@@ -63,14 +63,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_8421b9(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_9ea96d(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 2u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_8421b9(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_9ea96d(tint_module_vars);
 }
 //
 // vertex_main
@@ -109,7 +109,7 @@
   uint VertexOutput_prevent_dce [[user(locn0)]] [[flat]];
 };
 
-uint arrayLength_8421b9(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_9ea96d(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 2u);
   return res;
 }
@@ -117,7 +117,7 @@
 VertexOutput vertex_main_inner(tint_module_vars_struct tint_module_vars) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_8421b9(tint_module_vars);
+  out.prevent_dce = arrayLength_9ea96d(tint_module_vars);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.msl b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.msl
similarity index 91%
rename from test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.msl
rename to test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.msl
index ceef0a8..29b1ca8 100644
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.msl
@@ -25,7 +25,7 @@
   tint_array<half, 1> arg_0;
 };
 
-uint arrayLength_8421b9(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_9ea96d(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 2u);
   return res;
 }
@@ -36,7 +36,7 @@
 };
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_8421b9(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_9ea96d(tint_symbol_2);
   return;
 }
 
@@ -67,7 +67,7 @@
   tint_array<half, 1> arg_0;
 };
 
-uint arrayLength_8421b9(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_9ea96d(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 2u);
   return res;
 }
@@ -78,7 +78,7 @@
 };
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_8421b9(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_9ea96d(tint_symbol_2);
   return;
 }
 
@@ -109,7 +109,7 @@
   tint_array<half, 1> arg_0;
 };
 
-uint arrayLength_8421b9(const constant TintArrayLengths* const tint_symbol_1) {
+uint arrayLength_9ea96d(const constant TintArrayLengths* const tint_symbol_1) {
   uint res = (((*(tint_symbol_1)).array_lengths[0u][0u] - 0u) / 2u);
   return res;
 }
@@ -127,7 +127,7 @@
 VertexOutput vertex_main_inner(const constant TintArrayLengths* const tint_symbol_2) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_8421b9(tint_symbol_2);
+  out.prevent_dce = arrayLength_9ea96d(tint_symbol_2);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.spvasm
similarity index 95%
rename from test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.spvasm
rename to test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.spvasm
index 40a884a..4e4c73b 100644
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.spvasm
@@ -18,7 +18,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_8421b9 "arrayLength_8421b9"
+               OpName %arrayLength_9ea96d "arrayLength_9ea96d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -48,7 +48,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_8421b9 = OpFunction %uint None %11
+%arrayLength_9ea96d = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_ro %uint_0
@@ -59,7 +59,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_8421b9
+         %24 = OpFunctionCall %uint %arrayLength_9ea96d
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -84,7 +84,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_8421b9 "arrayLength_8421b9"
+               OpName %arrayLength_9ea96d "arrayLength_9ea96d"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -114,7 +114,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_8421b9 = OpFunction %uint None %11
+%arrayLength_9ea96d = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_ro %uint_0
@@ -125,7 +125,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_8421b9
+         %24 = OpFunctionCall %uint %arrayLength_9ea96d
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -150,7 +150,7 @@
                OpName %vertex_main_position_Output "vertex_main_position_Output"
                OpName %vertex_main_loc0_Output "vertex_main_loc0_Output"
                OpName %vertex_main___point_size_Output "vertex_main___point_size_Output"
-               OpName %arrayLength_8421b9 "arrayLength_8421b9"
+               OpName %arrayLength_9ea96d "arrayLength_9ea96d"
                OpName %res "res"
                OpName %vertex_main_inner "vertex_main_inner"
                OpMemberName %VertexOutput 0 "pos"
@@ -198,7 +198,7 @@
        %void = OpTypeVoid
          %41 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-%arrayLength_8421b9 = OpFunction %uint None %16
+%arrayLength_9ea96d = OpFunction %uint None %16
          %17 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %18 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_ro %uint_0
@@ -213,7 +213,7 @@
          %32 = OpAccessChain %_ptr_Function_v4float %out %uint_0
                OpStore %32 %34 None
          %35 = OpAccessChain %_ptr_Function_uint %out %uint_1
-         %37 = OpFunctionCall %uint %arrayLength_8421b9
+         %37 = OpFunctionCall %uint %arrayLength_9ea96d
                OpStore %35 %37 None
          %38 = OpLoad %VertexOutput %out None
                OpReturnValue %38
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.wgsl
similarity index 78%
copy from test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.wgsl
copy to test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.wgsl
index ec5202c..3f8f5bf 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.wgsl
@@ -8,19 +8,19 @@
 
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-fn arrayLength_8421b9() -> u32 {
+fn arrayLength_9ea96d() -> u32 {
   var res : u32 = arrayLength(&(sb_ro.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_8421b9();
+  prevent_dce = arrayLength_9ea96d();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_8421b9();
+  prevent_dce = arrayLength_9ea96d();
 }
 
 struct VertexOutput {
@@ -34,6 +34,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_8421b9();
+  out.prevent_dce = arrayLength_9ea96d();
   return out;
 }
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 2e68ad7..0000000
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_a0f5ca() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_a0f5ca()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_a0f5ca() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_a0f5ca()));
-  return;
-}
-//
-// vertex_main
-//
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_a0f5ca() {
-  uint tint_symbol_3 = 0u;
-  sb_ro.GetDimensions(tint_symbol_3);
-  uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
-  uint res = tint_symbol_4;
-  return res;
-}
-
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-struct tint_symbol_1 {
-  nointerpolation uint prevent_dce : TEXCOORD0;
-  float4 pos : SV_Position;
-};
-
-VertexOutput vertex_main_inner() {
-  VertexOutput tint_symbol = (VertexOutput)0;
-  tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_a0f5ca();
-  return tint_symbol;
-}
-
-tint_symbol_1 vertex_main() {
-  VertexOutput inner_result = vertex_main_inner();
-  tint_symbol_1 wrapper_result = (tint_symbol_1)0;
-  wrapper_result.pos = inner_result.pos;
-  wrapper_result.prevent_dce = inner_result.prevent_dce;
-  return wrapper_result;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 2e68ad7..0000000
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_a0f5ca() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_a0f5ca()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_a0f5ca() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_a0f5ca()));
-  return;
-}
-//
-// vertex_main
-//
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_a0f5ca() {
-  uint tint_symbol_3 = 0u;
-  sb_ro.GetDimensions(tint_symbol_3);
-  uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
-  uint res = tint_symbol_4;
-  return res;
-}
-
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-struct tint_symbol_1 {
-  nointerpolation uint prevent_dce : TEXCOORD0;
-  float4 pos : SV_Position;
-};
-
-VertexOutput vertex_main_inner() {
-  VertexOutput tint_symbol = (VertexOutput)0;
-  tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_a0f5ca();
-  return tint_symbol;
-}
-
-tint_symbol_1 vertex_main() {
-  VertexOutput inner_result = vertex_main_inner();
-  tint_symbol_1 wrapper_result = (tint_symbol_1)0;
-  wrapper_result.pos = inner_result.pos;
-  wrapper_result.prevent_dce = inner_result.prevent_dce;
-  return wrapper_result;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.glsl
deleted file mode 100644
index b531225..0000000
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.glsl
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// fragment_main
-//
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(binding = 0, std430)
-buffer f_prevent_dce_block_ssbo {
-  uint inner;
-} v;
-layout(binding = 1, std430)
-buffer f_SB_RO_ssbo {
-  float arg_0[];
-} sb_ro;
-uint arrayLength_a0f5ca() {
-  uint res = uint(sb_ro.arg_0.length());
-  return res;
-}
-void main() {
-  v.inner = arrayLength_a0f5ca();
-}
-//
-// compute_main
-//
-#version 310 es
-
-layout(binding = 0, std430)
-buffer prevent_dce_block_1_ssbo {
-  uint inner;
-} v;
-layout(binding = 1, std430)
-buffer SB_RO_1_ssbo {
-  float arg_0[];
-} sb_ro;
-uint arrayLength_a0f5ca() {
-  uint res = uint(sb_ro.arg_0.length());
-  return res;
-}
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  v.inner = arrayLength_a0f5ca();
-}
-//
-// vertex_main
-//
-#version 310 es
-
-
-struct VertexOutput {
-  vec4 pos;
-  uint prevent_dce;
-};
-
-layout(binding = 1, std430)
-buffer v_SB_RO_ssbo {
-  float arg_0[];
-} sb_ro;
-layout(location = 0) flat out uint tint_interstage_location0;
-uint arrayLength_a0f5ca() {
-  uint res = uint(sb_ro.arg_0.length());
-  return res;
-}
-VertexOutput vertex_main_inner() {
-  VertexOutput v = VertexOutput(vec4(0.0f), 0u);
-  v.pos = vec4(0.0f);
-  v.prevent_dce = arrayLength_a0f5ca();
-  return v;
-}
-void main() {
-  VertexOutput v_1 = vertex_main_inner();
-  gl_Position = vec4(v_1.pos.x, -(v_1.pos.y), ((2.0f * v_1.pos.z) - v_1.pos.w), v_1.pos.w);
-  tint_interstage_location0 = v_1.prevent_dce;
-  gl_PointSize = 1.0f;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.msl
deleted file mode 100644
index 1703b1a..0000000
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.msl
+++ /dev/null
@@ -1,131 +0,0 @@
-//
-// fragment_main
-//
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<float, 1> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device uint* prevent_dce;
-  const device SB_RO* sb_ro;
-  const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
-};
-
-uint arrayLength_a0f5ca(tint_module_vars_struct tint_module_vars) {
-  uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
-  return res;
-}
-
-fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_a0f5ca(tint_module_vars);
-}
-//
-// compute_main
-//
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<float, 1> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device uint* prevent_dce;
-  const device SB_RO* sb_ro;
-  const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
-};
-
-uint arrayLength_a0f5ca(tint_module_vars_struct tint_module_vars) {
-  uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
-  return res;
-}
-
-kernel void compute_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_a0f5ca(tint_module_vars);
-}
-//
-// vertex_main
-//
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<float, 1> arg_0;
-};
-
-struct tint_module_vars_struct {
-  const device SB_RO* sb_ro;
-  const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
-};
-
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-
-struct vertex_main_outputs {
-  float4 VertexOutput_pos [[position]];
-  uint VertexOutput_prevent_dce [[user(locn0)]] [[flat]];
-};
-
-uint arrayLength_a0f5ca(tint_module_vars_struct tint_module_vars) {
-  uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
-  return res;
-}
-
-VertexOutput vertex_main_inner(tint_module_vars_struct tint_module_vars) {
-  VertexOutput out = {};
-  out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_a0f5ca(tint_module_vars);
-  return out;
-}
-
-vertex vertex_main_outputs vertex_main(const device SB_RO* sb_ro [[buffer(0)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  VertexOutput const v = vertex_main_inner(tint_module_vars);
-  vertex_main_outputs tint_wrapper_result = {};
-  tint_wrapper_result.VertexOutput_pos = v.pos;
-  tint_wrapper_result.VertexOutput_prevent_dce = v.prevent_dce;
-  return tint_wrapper_result;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.spvasm
deleted file mode 100644
index 05c891c..0000000
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.spvasm
+++ /dev/null
@@ -1,220 +0,0 @@
-;
-; fragment_main
-;
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 27
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %SB_RO "SB_RO"
-               OpName %sb_ro "sb_ro"
-               OpName %arrayLength_a0f5ca "arrayLength_a0f5ca"
-               OpName %res "res"
-               OpName %fragment_main "fragment_main"
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce_block Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %1 Coherent
-               OpDecorate %_runtimearr_float ArrayStride 4
-               OpMemberDecorate %SB_RO 0 Offset 0
-               OpDecorate %SB_RO Block
-               OpDecorate %sb_ro DescriptorSet 0
-               OpDecorate %sb_ro Binding 1
-               OpDecorate %sb_ro NonWritable
-       %uint = OpTypeInt 32 0
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
-      %float = OpTypeFloat 32
-%_runtimearr_float = OpTypeRuntimeArray %float
-      %SB_RO = OpTypeStruct %_runtimearr_float
-%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
-      %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
-         %11 = OpTypeFunction %uint
-%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
-     %uint_0 = OpConstant %uint 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-       %void = OpTypeVoid
-         %22 = OpTypeFunction %void
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_a0f5ca = OpFunction %uint None %11
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function
-         %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_ro %uint_0
-         %16 = OpArrayLength %uint %sb_ro 0
-               OpStore %res %16
-         %19 = OpLoad %uint %res None
-               OpReturnValue %19
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %22
-         %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_a0f5ca
-         %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
-               OpStore %25 %24 None
-               OpReturn
-               OpFunctionEnd
-;
-; compute_main
-;
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 27
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %SB_RO "SB_RO"
-               OpName %sb_ro "sb_ro"
-               OpName %arrayLength_a0f5ca "arrayLength_a0f5ca"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce_block Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %1 Coherent
-               OpDecorate %_runtimearr_float ArrayStride 4
-               OpMemberDecorate %SB_RO 0 Offset 0
-               OpDecorate %SB_RO Block
-               OpDecorate %sb_ro DescriptorSet 0
-               OpDecorate %sb_ro Binding 1
-               OpDecorate %sb_ro NonWritable
-       %uint = OpTypeInt 32 0
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
-      %float = OpTypeFloat 32
-%_runtimearr_float = OpTypeRuntimeArray %float
-      %SB_RO = OpTypeStruct %_runtimearr_float
-%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
-      %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
-         %11 = OpTypeFunction %uint
-%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
-     %uint_0 = OpConstant %uint 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-       %void = OpTypeVoid
-         %22 = OpTypeFunction %void
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_a0f5ca = OpFunction %uint None %11
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function
-         %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_ro %uint_0
-         %16 = OpArrayLength %uint %sb_ro 0
-               OpStore %res %16
-         %19 = OpLoad %uint %res None
-               OpReturnValue %19
-               OpFunctionEnd
-%compute_main = OpFunction %void None %22
-         %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_a0f5ca
-         %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
-               OpStore %25 %24 None
-               OpReturn
-               OpFunctionEnd
-;
-; vertex_main
-;
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 46
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %vertex_main_position_Output %vertex_main_loc0_Output %vertex_main___point_size_Output
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %SB_RO "SB_RO"
-               OpName %sb_ro "sb_ro"
-               OpName %vertex_main_position_Output "vertex_main_position_Output"
-               OpName %vertex_main_loc0_Output "vertex_main_loc0_Output"
-               OpName %vertex_main___point_size_Output "vertex_main___point_size_Output"
-               OpName %arrayLength_a0f5ca "arrayLength_a0f5ca"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpMemberName %VertexOutput 0 "pos"
-               OpMemberName %VertexOutput 1 "prevent_dce"
-               OpName %VertexOutput "VertexOutput"
-               OpName %out "out"
-               OpName %vertex_main "vertex_main"
-               OpDecorate %_runtimearr_float ArrayStride 4
-               OpMemberDecorate %SB_RO 0 Offset 0
-               OpDecorate %SB_RO Block
-               OpDecorate %sb_ro DescriptorSet 0
-               OpDecorate %sb_ro Binding 1
-               OpDecorate %sb_ro NonWritable
-               OpDecorate %vertex_main_position_Output BuiltIn Position
-               OpDecorate %vertex_main_loc0_Output Location 0
-               OpDecorate %vertex_main_loc0_Output Flat
-               OpDecorate %vertex_main___point_size_Output BuiltIn PointSize
-               OpMemberDecorate %VertexOutput 0 Offset 0
-               OpMemberDecorate %VertexOutput 1 Offset 16
-      %float = OpTypeFloat 32
-%_runtimearr_float = OpTypeRuntimeArray %float
-      %SB_RO = OpTypeStruct %_runtimearr_float
-%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
-      %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%vertex_main_position_Output = OpVariable %_ptr_Output_v4float Output
-       %uint = OpTypeInt 32 0
-%_ptr_Output_uint = OpTypePointer Output %uint
-%vertex_main_loc0_Output = OpVariable %_ptr_Output_uint Output
-%_ptr_Output_float = OpTypePointer Output %float
-%vertex_main___point_size_Output = OpVariable %_ptr_Output_float Output
-         %15 = OpTypeFunction %uint
-%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
-     %uint_0 = OpConstant %uint 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-%VertexOutput = OpTypeStruct %v4float %uint
-         %26 = OpTypeFunction %VertexOutput
-%_ptr_Function_VertexOutput = OpTypePointer Function %VertexOutput
-         %30 = OpConstantNull %VertexOutput
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpConstantNull %v4float
-     %uint_1 = OpConstant %uint 1
-       %void = OpTypeVoid
-         %40 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
-%arrayLength_a0f5ca = OpFunction %uint None %15
-         %16 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function
-         %17 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_ro %uint_0
-         %20 = OpArrayLength %uint %sb_ro 0
-               OpStore %res %20
-         %23 = OpLoad %uint %res None
-               OpReturnValue %23
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %VertexOutput None %26
-         %27 = OpLabel
-        %out = OpVariable %_ptr_Function_VertexOutput Function %30
-         %31 = OpAccessChain %_ptr_Function_v4float %out %uint_0
-               OpStore %31 %33 None
-         %34 = OpAccessChain %_ptr_Function_uint %out %uint_1
-         %36 = OpFunctionCall %uint %arrayLength_a0f5ca
-               OpStore %34 %36 None
-         %37 = OpLoad %VertexOutput %out None
-               OpReturnValue %37
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %40
-         %41 = OpLabel
-         %42 = OpFunctionCall %VertexOutput %vertex_main_inner
-         %43 = OpCompositeExtract %v4float %42 0
-               OpStore %vertex_main_position_Output %43 None
-         %44 = OpCompositeExtract %uint %42 1
-               OpStore %vertex_main_loc0_Output %44 None
-               OpStore %vertex_main___point_size_Output %float_1 None
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.wgsl
deleted file mode 100644
index 49a5398..0000000
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.wgsl
+++ /dev/null
@@ -1,37 +0,0 @@
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
-struct SB_RO {
-  arg_0 : array<f32>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn arrayLength_a0f5ca() -> u32 {
-  var res : u32 = arrayLength(&(sb_ro.arg_0));
-  return res;
-}
-
-@fragment
-fn fragment_main() {
-  prevent_dce = arrayLength_a0f5ca();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  prevent_dce = arrayLength_a0f5ca();
-}
-
-struct VertexOutput {
-  @builtin(position)
-  pos : vec4<f32>,
-  @location(0) @interpolate(flat)
-  prevent_dce : u32,
-}
-
-@vertex
-fn vertex_main() -> VertexOutput {
-  var out : VertexOutput;
-  out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_a0f5ca();
-  return out;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl
similarity index 90%
rename from test/tint/builtins/gen/var/arrayLength/1588cd.wgsl
rename to test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl
index 11dd7e5..6a5da00 100644
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2021 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -42,19 +42,19 @@
 };
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-// fn arrayLength(ptr<storage, array<i32>, read>) -> u32
-fn arrayLength_1588cd() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<i32>, read>) -> u32
+fn arrayLength_bf7d97() -> u32{
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_1588cd();
+  prevent_dce = arrayLength_bf7d97();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_1588cd();
+  prevent_dce = arrayLength_bf7d97();
 }
 
 struct VertexOutput {
@@ -66,6 +66,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_1588cd();
+  out.prevent_dce = arrayLength_bf7d97();
   return out;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.dxc.hlsl
similarity index 85%
copy from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.dxc.hlsl
index c638623..8f601d6 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_bf7d97()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_bf7d97()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_1588cd();
+  tint_symbol.prevent_dce = arrayLength_bf7d97();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.fxc.hlsl
similarity index 85%
copy from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.fxc.hlsl
index c638623..8f601d6 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_bf7d97()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint tint_symbol_1 = 0u;
   sb_ro.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,7 +32,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
+  prevent_dce.Store(0u, asuint(arrayLength_bf7d97()));
   return;
 }
 //
@@ -40,7 +40,7 @@
 //
 ByteAddressBuffer sb_ro : register(t1);
 
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint tint_symbol_3 = 0u;
   sb_ro.GetDimensions(tint_symbol_3);
   uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
@@ -60,7 +60,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput tint_symbol = (VertexOutput)0;
   tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_1588cd();
+  tint_symbol.prevent_dce = arrayLength_bf7d97();
   return tint_symbol;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.glsl
similarity index 86%
copy from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.glsl
index 073776b..dc82d4b 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 buffer f_SB_RO_ssbo {
   int arg_0[];
 } sb_ro;
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_1588cd();
+  v.inner = arrayLength_bf7d97();
 }
 //
 // compute_main
@@ -33,13 +33,13 @@
 buffer SB_RO_1_ssbo {
   int arg_0[];
 } sb_ro;
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_1588cd();
+  v.inner = arrayLength_bf7d97();
 }
 //
 // vertex_main
@@ -57,14 +57,14 @@
   int arg_0[];
 } sb_ro;
 layout(location = 0) flat out uint tint_interstage_location0;
-uint arrayLength_1588cd() {
+uint arrayLength_bf7d97() {
   uint res = uint(sb_ro.arg_0.length());
   return res;
 }
 VertexOutput vertex_main_inner() {
   VertexOutput v = VertexOutput(vec4(0.0f), 0u);
   v.pos = vec4(0.0f);
-  v.prevent_dce = arrayLength_1588cd();
+  v.prevent_dce = arrayLength_bf7d97();
   return v;
 }
 void main() {
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.ir.dxc.hlsl
similarity index 83%
copy from test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.ir.dxc.hlsl
index ccc8aa4..695f703 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_bf7d97() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_bf7d97());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_bf7d97() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_bf7d97());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_bf7d97() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_a0f5ca();
+  v_1.prevent_dce = arrayLength_bf7d97();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.ir.fxc.hlsl
similarity index 83%
copy from test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.ir.fxc.hlsl
index ccc8aa4..695f703 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_bf7d97() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_bf7d97());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_bf7d97() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,7 +30,7 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_a0f5ca());
+  prevent_dce.Store(0u, arrayLength_bf7d97());
 }
 
 //
@@ -48,7 +48,7 @@
 
 
 ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_a0f5ca() {
+uint arrayLength_bf7d97() {
   uint v = 0u;
   sb_ro.GetDimensions(v);
   uint res = (v / 4u);
@@ -58,7 +58,7 @@
 VertexOutput vertex_main_inner() {
   VertexOutput v_1 = (VertexOutput)0;
   v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_a0f5ca();
+  v_1.prevent_dce = arrayLength_bf7d97();
   VertexOutput v_2 = v_1;
   return v_2;
 }
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.ir.msl
similarity index 92%
rename from test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.msl
rename to test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.ir.msl
index b261877..32ad0b6 100644
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_1588cd(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_bf7d97(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_1588cd(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_bf7d97(tint_module_vars);
 }
 //
 // compute_main
@@ -63,14 +63,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_1588cd(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_bf7d97(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_1588cd(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_bf7d97(tint_module_vars);
 }
 //
 // vertex_main
@@ -109,7 +109,7 @@
   uint VertexOutput_prevent_dce [[user(locn0)]] [[flat]];
 };
 
-uint arrayLength_1588cd(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_bf7d97(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
@@ -117,7 +117,7 @@
 VertexOutput vertex_main_inner(tint_module_vars_struct tint_module_vars) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_1588cd(tint_module_vars);
+  out.prevent_dce = arrayLength_bf7d97(tint_module_vars);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.msl b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.msl
similarity index 91%
rename from test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.msl
rename to test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.msl
index 6b62e72..b78da29 100644
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.msl
@@ -25,7 +25,7 @@
   tint_array<int, 1> arg_0;
 };
 
-uint arrayLength_1588cd(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_bf7d97(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -36,7 +36,7 @@
 };
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_1588cd(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_bf7d97(tint_symbol_2);
   return;
 }
 
@@ -67,7 +67,7 @@
   tint_array<int, 1> arg_0;
 };
 
-uint arrayLength_1588cd(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_bf7d97(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -78,7 +78,7 @@
 };
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_1588cd(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_bf7d97(tint_symbol_2);
   return;
 }
 
@@ -109,7 +109,7 @@
   tint_array<int, 1> arg_0;
 };
 
-uint arrayLength_1588cd(const constant TintArrayLengths* const tint_symbol_1) {
+uint arrayLength_bf7d97(const constant TintArrayLengths* const tint_symbol_1) {
   uint res = (((*(tint_symbol_1)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
@@ -127,7 +127,7 @@
 VertexOutput vertex_main_inner(const constant TintArrayLengths* const tint_symbol_2) {
   VertexOutput out = {};
   out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_1588cd(tint_symbol_2);
+  out.prevent_dce = arrayLength_bf7d97(tint_symbol_2);
   return out;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.spvasm
similarity index 94%
copy from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.spvasm
copy to test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.spvasm
index 02c203d..2c79b63 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.spvasm
@@ -15,7 +15,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_1588cd "arrayLength_1588cd"
+               OpName %arrayLength_bf7d97 "arrayLength_bf7d97"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -45,7 +45,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_1588cd = OpFunction %uint None %11
+%arrayLength_bf7d97 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_ro %uint_0
@@ -56,7 +56,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_1588cd
+         %24 = OpFunctionCall %uint %arrayLength_bf7d97
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -78,7 +78,7 @@
                OpMemberName %SB_RO 0 "arg_0"
                OpName %SB_RO "SB_RO"
                OpName %sb_ro "sb_ro"
-               OpName %arrayLength_1588cd "arrayLength_1588cd"
+               OpName %arrayLength_bf7d97 "arrayLength_bf7d97"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -108,7 +108,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_1588cd = OpFunction %uint None %11
+%arrayLength_bf7d97 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_ro %uint_0
@@ -119,7 +119,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_1588cd
+         %24 = OpFunctionCall %uint %arrayLength_bf7d97
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -141,7 +141,7 @@
                OpName %vertex_main_position_Output "vertex_main_position_Output"
                OpName %vertex_main_loc0_Output "vertex_main_loc0_Output"
                OpName %vertex_main___point_size_Output "vertex_main___point_size_Output"
-               OpName %arrayLength_1588cd "arrayLength_1588cd"
+               OpName %arrayLength_bf7d97 "arrayLength_bf7d97"
                OpName %res "res"
                OpName %vertex_main_inner "vertex_main_inner"
                OpMemberName %VertexOutput 0 "pos"
@@ -189,7 +189,7 @@
        %void = OpTypeVoid
          %41 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-%arrayLength_1588cd = OpFunction %uint None %16
+%arrayLength_bf7d97 = OpFunction %uint None %16
          %17 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %18 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_ro %uint_0
@@ -204,7 +204,7 @@
          %32 = OpAccessChain %_ptr_Function_v4float %out %uint_0
                OpStore %32 %34 None
          %35 = OpAccessChain %_ptr_Function_uint %out %uint_1
-         %37 = OpFunctionCall %uint %arrayLength_1588cd
+         %37 = OpFunctionCall %uint %arrayLength_bf7d97
                OpStore %35 %37 None
          %38 = OpLoad %VertexOutput %out None
                OpReturnValue %38
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.wgsl
similarity index 78%
copy from test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.wgsl
copy to test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.wgsl
index b00ac77..4ec2d47 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.wgsl
@@ -6,19 +6,19 @@
 
 @group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
 
-fn arrayLength_1588cd() -> u32 {
+fn arrayLength_bf7d97() -> u32 {
   var res : u32 = arrayLength(&(sb_ro.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_1588cd();
+  prevent_dce = arrayLength_bf7d97();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_1588cd();
+  prevent_dce = arrayLength_bf7d97();
 }
 
 struct VertexOutput {
@@ -32,6 +32,6 @@
 fn vertex_main() -> VertexOutput {
   var out : VertexOutput;
   out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_1588cd();
+  out.prevent_dce = arrayLength_bf7d97();
   return out;
 }
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl
deleted file mode 100644
index 7f1d3b2..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright 2022 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
-struct SB_RW {
-  arg_0: array<f16>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn arrayLength(ptr<storage, array<f16>, read_write>) -> u32
-fn arrayLength_cbd6b5() -> u32{
-  var res: u32 = arrayLength(&sb_rw.arg_0);
-  return res;
-}
-@fragment
-fn fragment_main() {
-  prevent_dce = arrayLength_cbd6b5();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  prevent_dce = arrayLength_cbd6b5();
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl
deleted file mode 100644
index bda931f..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_cbd6b5() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cbd6b5()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_cbd6b5() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cbd6b5()));
-  return;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.fxc.hlsl
deleted file mode 100644
index bda931f..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_cbd6b5() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cbd6b5()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_cbd6b5() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cbd6b5()));
-  return;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.glsl
deleted file mode 100644
index c3492ac..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.glsl
+++ /dev/null
@@ -1,45 +0,0 @@
-//
-// fragment_main
-//
-#version 310 es
-#extension GL_AMD_gpu_shader_half_float: require
-precision highp float;
-precision highp int;
-
-layout(binding = 0, std430)
-buffer f_prevent_dce_block_ssbo {
-  uint inner;
-} v;
-layout(binding = 1, std430)
-buffer f_SB_RW_ssbo {
-  float16_t arg_0[];
-} sb_rw;
-uint arrayLength_cbd6b5() {
-  uint res = uint(sb_rw.arg_0.length());
-  return res;
-}
-void main() {
-  v.inner = arrayLength_cbd6b5();
-}
-//
-// compute_main
-//
-#version 310 es
-#extension GL_AMD_gpu_shader_half_float: require
-
-layout(binding = 0, std430)
-buffer prevent_dce_block_1_ssbo {
-  uint inner;
-} v;
-layout(binding = 1, std430)
-buffer SB_RW_1_ssbo {
-  float16_t arg_0[];
-} sb_rw;
-uint arrayLength_cbd6b5() {
-  uint res = uint(sb_rw.arg_0.length());
-  return res;
-}
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  v.inner = arrayLength_cbd6b5();
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index f458ee9..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cbd6b5() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 2u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cbd6b5());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cbd6b5() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 2u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cbd6b5());
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index f458ee9..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cbd6b5() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 2u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cbd6b5());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cbd6b5() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 2u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cbd6b5());
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.msl b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.msl
deleted file mode 100644
index 8c8026f..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.msl
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// fragment_main
-//
-#include <metal_stdlib>
-
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-    const constant T& operator[](size_t i) const constant { return elements[i]; }
-    device T& operator[](size_t i) device { return elements[i]; }
-    const device T& operator[](size_t i) const device { return elements[i]; }
-    thread T& operator[](size_t i) thread { return elements[i]; }
-    const thread T& operator[](size_t i) const thread { return elements[i]; }
-    threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-    const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-    T elements[N];
-};
-
-struct TintArrayLengths {
-  /* 0x0000 */ tint_array<uint4, 1> array_lengths;
-};
-
-struct SB_RW {
-  tint_array<half, 1> arg_0;
-};
-
-uint arrayLength_cbd6b5(const constant TintArrayLengths* const tint_symbol) {
-  uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 2u);
-  return res;
-}
-
-fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cbd6b5(tint_symbol_2);
-  return;
-}
-
-//
-// compute_main
-//
-#include <metal_stdlib>
-
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-    const constant T& operator[](size_t i) const constant { return elements[i]; }
-    device T& operator[](size_t i) device { return elements[i]; }
-    const device T& operator[](size_t i) const device { return elements[i]; }
-    thread T& operator[](size_t i) thread { return elements[i]; }
-    const thread T& operator[](size_t i) const thread { return elements[i]; }
-    threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-    const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-    T elements[N];
-};
-
-struct TintArrayLengths {
-  /* 0x0000 */ tint_array<uint4, 1> array_lengths;
-};
-
-struct SB_RW {
-  tint_array<half, 1> arg_0;
-};
-
-uint arrayLength_cbd6b5(const constant TintArrayLengths* const tint_symbol) {
-  uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 2u);
-  return res;
-}
-
-kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cbd6b5(tint_symbol_2);
-  return;
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.wgsl
deleted file mode 100644
index ddbce3b..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.wgsl
+++ /dev/null
@@ -1,24 +0,0 @@
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
-struct SB_RW {
-  arg_0 : array<f16>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn arrayLength_cbd6b5() -> u32 {
-  var res : u32 = arrayLength(&(sb_rw.arg_0));
-  return res;
-}
-
-@fragment
-fn fragment_main() {
-  prevent_dce = arrayLength_cbd6b5();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  prevent_dce = arrayLength_cbd6b5();
-}
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl
similarity index 90%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl
copy to test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl
index 23b09c7..2ea0340 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2021 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -42,17 +42,17 @@
 };
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-// fn arrayLength(ptr<storage, array<f32>, read_write>) -> u32
-fn arrayLength_cdd123() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<f32>, read_write>) -> u32
+fn arrayLength_cc9a8d() -> u32{
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_cdd123();
+  prevent_dce = arrayLength_cc9a8d();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_cdd123();
+  prevent_dce = arrayLength_cc9a8d();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.dxc.hlsl
similarity index 79%
copy from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.dxc.hlsl
index 79b0daf..c58e47f 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_cc9a8d() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_cc9a8d()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_cc9a8d() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_cc9a8d()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.fxc.hlsl
similarity index 79%
copy from test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.fxc.hlsl
index 79b0daf..c58e47f 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_cc9a8d() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_cc9a8d()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_61b1c7() {
+uint arrayLength_cc9a8d() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
+  prevent_dce.Store(0u, asuint(arrayLength_cc9a8d()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.glsl
similarity index 83%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.glsl
index eaa9382..a375654 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 buffer f_SB_RW_ssbo {
   float arg_0[];
 } sb_rw;
-uint arrayLength_cdd123() {
+uint arrayLength_cc9a8d() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_cdd123();
+  v.inner = arrayLength_cc9a8d();
 }
 //
 // compute_main
@@ -33,11 +33,11 @@
 buffer SB_RW_1_ssbo {
   float arg_0[];
 } sb_rw;
-uint arrayLength_cdd123() {
+uint arrayLength_cc9a8d() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_cdd123();
+  v.inner = arrayLength_cc9a8d();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.ir.dxc.hlsl
similarity index 75%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.ir.dxc.hlsl
index 6604b90..3daa558 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_cc9a8d() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_cc9a8d());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_cc9a8d() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_cc9a8d());
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.ir.fxc.hlsl
similarity index 75%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.ir.fxc.hlsl
index 6604b90..3daa558 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_cc9a8d() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_cc9a8d());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
+uint arrayLength_cc9a8d() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 4u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
+  prevent_dce.Store(0u, arrayLength_cc9a8d());
 }
 
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.ir.msl
similarity index 91%
rename from test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.msl
rename to test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.ir.msl
index 3096d8b..c680c44 100644
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_cdd123(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_cc9a8d(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_cdd123(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_cc9a8d(tint_module_vars);
 }
 //
 // compute_main
@@ -63,12 +63,12 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_cdd123(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_cc9a8d(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_cdd123(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_cc9a8d(tint_module_vars);
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.msl b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.msl
similarity index 89%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.msl
copy to test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.msl
index 8103844..bcd33aa 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.msl
@@ -25,13 +25,13 @@
   tint_array<float, 1> arg_0;
 };
 
-uint arrayLength_cdd123(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_cc9a8d(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cdd123(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_cc9a8d(tint_symbol_2);
   return;
 }
 
@@ -62,13 +62,13 @@
   tint_array<float, 1> arg_0;
 };
 
-uint arrayLength_cdd123(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_cc9a8d(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
   return res;
 }
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cdd123(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_cc9a8d(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.spvasm
similarity index 93%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.spvasm
copy to test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.spvasm
index 8b41fdd8..7c2ae70 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.spvasm
@@ -15,7 +15,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_cdd123 "arrayLength_cdd123"
+               OpName %arrayLength_cc9a8d "arrayLength_cc9a8d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -45,7 +45,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cdd123 = OpFunction %uint None %11
+%arrayLength_cc9a8d = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_rw %uint_0
@@ -56,7 +56,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_cdd123
+         %24 = OpFunctionCall %uint %arrayLength_cc9a8d
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -78,7 +78,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_cdd123 "arrayLength_cdd123"
+               OpName %arrayLength_cc9a8d "arrayLength_cc9a8d"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -108,7 +108,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cdd123 = OpFunction %uint None %11
+%arrayLength_cc9a8d = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_rw %uint_0
@@ -119,7 +119,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_cdd123
+         %24 = OpFunctionCall %uint %arrayLength_cc9a8d
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.wgsl
similarity index 74%
copy from test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.wgsl
copy to test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.wgsl
index 1eae93b..937a2b8 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/cc9a8d.wgsl.expected.wgsl
@@ -6,17 +6,17 @@
 
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-fn arrayLength_cdd123() -> u32 {
+fn arrayLength_cc9a8d() -> u32 {
   var res : u32 = arrayLength(&(sb_rw.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_cdd123();
+  prevent_dce = arrayLength_cc9a8d();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_cdd123();
+  prevent_dce = arrayLength_cc9a8d();
 }
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl
deleted file mode 100644
index 23b09c7..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2021 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
-struct SB_RW {
-  arg_0: array<f32>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn arrayLength(ptr<storage, array<f32>, read_write>) -> u32
-fn arrayLength_cdd123() -> u32{
-  var res: u32 = arrayLength(&sb_rw.arg_0);
-  return res;
-}
-@fragment
-fn fragment_main() {
-  prevent_dce = arrayLength_cdd123();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  prevent_dce = arrayLength_cdd123();
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 7b9849f..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_cdd123() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cdd123()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_cdd123() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cdd123()));
-  return;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 7b9849f..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_cdd123() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cdd123()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_cdd123() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cdd123()));
-  return;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.glsl
deleted file mode 100644
index eaa9382..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.glsl
+++ /dev/null
@@ -1,43 +0,0 @@
-//
-// fragment_main
-//
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(binding = 0, std430)
-buffer f_prevent_dce_block_ssbo {
-  uint inner;
-} v;
-layout(binding = 1, std430)
-buffer f_SB_RW_ssbo {
-  float arg_0[];
-} sb_rw;
-uint arrayLength_cdd123() {
-  uint res = uint(sb_rw.arg_0.length());
-  return res;
-}
-void main() {
-  v.inner = arrayLength_cdd123();
-}
-//
-// compute_main
-//
-#version 310 es
-
-layout(binding = 0, std430)
-buffer prevent_dce_block_1_ssbo {
-  uint inner;
-} v;
-layout(binding = 1, std430)
-buffer SB_RW_1_ssbo {
-  float arg_0[];
-} sb_rw;
-uint arrayLength_cdd123() {
-  uint res = uint(sb_rw.arg_0.length());
-  return res;
-}
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  v.inner = arrayLength_cdd123();
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6604b90..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6604b90..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cdd123() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cdd123());
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.msl b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.msl
deleted file mode 100644
index 8103844..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.msl
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// fragment_main
-//
-#include <metal_stdlib>
-
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-    const constant T& operator[](size_t i) const constant { return elements[i]; }
-    device T& operator[](size_t i) device { return elements[i]; }
-    const device T& operator[](size_t i) const device { return elements[i]; }
-    thread T& operator[](size_t i) thread { return elements[i]; }
-    const thread T& operator[](size_t i) const thread { return elements[i]; }
-    threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-    const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-    T elements[N];
-};
-
-struct TintArrayLengths {
-  /* 0x0000 */ tint_array<uint4, 1> array_lengths;
-};
-
-struct SB_RW {
-  tint_array<float, 1> arg_0;
-};
-
-uint arrayLength_cdd123(const constant TintArrayLengths* const tint_symbol) {
-  uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
-  return res;
-}
-
-fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cdd123(tint_symbol_2);
-  return;
-}
-
-//
-// compute_main
-//
-#include <metal_stdlib>
-
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-    const constant T& operator[](size_t i) const constant { return elements[i]; }
-    device T& operator[](size_t i) device { return elements[i]; }
-    const device T& operator[](size_t i) const device { return elements[i]; }
-    thread T& operator[](size_t i) thread { return elements[i]; }
-    const thread T& operator[](size_t i) const thread { return elements[i]; }
-    threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-    const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-    T elements[N];
-};
-
-struct TintArrayLengths {
-  /* 0x0000 */ tint_array<uint4, 1> array_lengths;
-};
-
-struct SB_RW {
-  tint_array<float, 1> arg_0;
-};
-
-uint arrayLength_cdd123(const constant TintArrayLengths* const tint_symbol) {
-  uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
-  return res;
-}
-
-kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cdd123(tint_symbol_2);
-  return;
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.spvasm
deleted file mode 100644
index 8b41fdd8..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.spvasm
+++ /dev/null
@@ -1,126 +0,0 @@
-;
-; fragment_main
-;
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 27
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %SB_RW 0 "arg_0"
-               OpName %SB_RW "SB_RW"
-               OpName %sb_rw "sb_rw"
-               OpName %arrayLength_cdd123 "arrayLength_cdd123"
-               OpName %res "res"
-               OpName %fragment_main "fragment_main"
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce_block Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %1 Coherent
-               OpDecorate %_runtimearr_float ArrayStride 4
-               OpMemberDecorate %SB_RW 0 Offset 0
-               OpDecorate %SB_RW Block
-               OpDecorate %sb_rw DescriptorSet 0
-               OpDecorate %sb_rw Binding 1
-               OpDecorate %sb_rw Coherent
-       %uint = OpTypeInt 32 0
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
-      %float = OpTypeFloat 32
-%_runtimearr_float = OpTypeRuntimeArray %float
-      %SB_RW = OpTypeStruct %_runtimearr_float
-%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
-      %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
-         %11 = OpTypeFunction %uint
-%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
-     %uint_0 = OpConstant %uint 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-       %void = OpTypeVoid
-         %22 = OpTypeFunction %void
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cdd123 = OpFunction %uint None %11
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function
-         %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_rw %uint_0
-         %16 = OpArrayLength %uint %sb_rw 0
-               OpStore %res %16
-         %19 = OpLoad %uint %res None
-               OpReturnValue %19
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %22
-         %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_cdd123
-         %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
-               OpStore %25 %24 None
-               OpReturn
-               OpFunctionEnd
-;
-; compute_main
-;
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 27
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %SB_RW 0 "arg_0"
-               OpName %SB_RW "SB_RW"
-               OpName %sb_rw "sb_rw"
-               OpName %arrayLength_cdd123 "arrayLength_cdd123"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce_block Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %1 Coherent
-               OpDecorate %_runtimearr_float ArrayStride 4
-               OpMemberDecorate %SB_RW 0 Offset 0
-               OpDecorate %SB_RW Block
-               OpDecorate %sb_rw DescriptorSet 0
-               OpDecorate %sb_rw Binding 1
-               OpDecorate %sb_rw Coherent
-       %uint = OpTypeInt 32 0
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
-      %float = OpTypeFloat 32
-%_runtimearr_float = OpTypeRuntimeArray %float
-      %SB_RW = OpTypeStruct %_runtimearr_float
-%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
-      %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
-         %11 = OpTypeFunction %uint
-%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
-     %uint_0 = OpConstant %uint 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-       %void = OpTypeVoid
-         %22 = OpTypeFunction %void
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cdd123 = OpFunction %uint None %11
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function
-         %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_rw %uint_0
-         %16 = OpArrayLength %uint %sb_rw 0
-               OpStore %res %16
-         %19 = OpLoad %uint %res None
-               OpReturnValue %19
-               OpFunctionEnd
-%compute_main = OpFunction %void None %22
-         %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_cdd123
-         %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
-               OpStore %25 %24 None
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.wgsl
deleted file mode 100644
index 1eae93b..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
-struct SB_RW {
-  arg_0 : array<f32>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn arrayLength_cdd123() -> u32 {
-  var res : u32 = arrayLength(&(sb_rw.arg_0));
-  return res;
-}
-
-@fragment
-fn fragment_main() {
-  prevent_dce = arrayLength_cdd123();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  prevent_dce = arrayLength_cdd123();
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.dxc.hlsl
deleted file mode 100644
index d745420..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_cfca0a() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cfca0a()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_cfca0a() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cfca0a()));
-  return;
-}
-//
-// vertex_main
-//
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_cfca0a() {
-  uint tint_symbol_3 = 0u;
-  sb_ro.GetDimensions(tint_symbol_3);
-  uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
-  uint res = tint_symbol_4;
-  return res;
-}
-
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-struct tint_symbol_1 {
-  nointerpolation uint prevent_dce : TEXCOORD0;
-  float4 pos : SV_Position;
-};
-
-VertexOutput vertex_main_inner() {
-  VertexOutput tint_symbol = (VertexOutput)0;
-  tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_cfca0a();
-  return tint_symbol;
-}
-
-tint_symbol_1 vertex_main() {
-  VertexOutput inner_result = vertex_main_inner();
-  tint_symbol_1 wrapper_result = (tint_symbol_1)0;
-  wrapper_result.pos = inner_result.pos;
-  wrapper_result.prevent_dce = inner_result.prevent_dce;
-  return wrapper_result;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.fxc.hlsl
deleted file mode 100644
index d745420..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_cfca0a() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cfca0a()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_cfca0a() {
-  uint tint_symbol_1 = 0u;
-  sb_ro.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cfca0a()));
-  return;
-}
-//
-// vertex_main
-//
-ByteAddressBuffer sb_ro : register(t1);
-
-uint arrayLength_cfca0a() {
-  uint tint_symbol_3 = 0u;
-  sb_ro.GetDimensions(tint_symbol_3);
-  uint tint_symbol_4 = ((tint_symbol_3 - 0u) / 4u);
-  uint res = tint_symbol_4;
-  return res;
-}
-
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-struct tint_symbol_1 {
-  nointerpolation uint prevent_dce : TEXCOORD0;
-  float4 pos : SV_Position;
-};
-
-VertexOutput vertex_main_inner() {
-  VertexOutput tint_symbol = (VertexOutput)0;
-  tint_symbol.pos = (0.0f).xxxx;
-  tint_symbol.prevent_dce = arrayLength_cfca0a();
-  return tint_symbol;
-}
-
-tint_symbol_1 vertex_main() {
-  VertexOutput inner_result = vertex_main_inner();
-  tint_symbol_1 wrapper_result = (tint_symbol_1)0;
-  wrapper_result.pos = inner_result.pos;
-  wrapper_result.prevent_dce = inner_result.prevent_dce;
-  return wrapper_result;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.glsl
deleted file mode 100644
index 5a013be..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.glsl
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// fragment_main
-//
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(binding = 0, std430)
-buffer f_prevent_dce_block_ssbo {
-  uint inner;
-} v;
-layout(binding = 1, std430)
-buffer f_SB_RO_ssbo {
-  uint arg_0[];
-} sb_ro;
-uint arrayLength_cfca0a() {
-  uint res = uint(sb_ro.arg_0.length());
-  return res;
-}
-void main() {
-  v.inner = arrayLength_cfca0a();
-}
-//
-// compute_main
-//
-#version 310 es
-
-layout(binding = 0, std430)
-buffer prevent_dce_block_1_ssbo {
-  uint inner;
-} v;
-layout(binding = 1, std430)
-buffer SB_RO_1_ssbo {
-  uint arg_0[];
-} sb_ro;
-uint arrayLength_cfca0a() {
-  uint res = uint(sb_ro.arg_0.length());
-  return res;
-}
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  v.inner = arrayLength_cfca0a();
-}
-//
-// vertex_main
-//
-#version 310 es
-
-
-struct VertexOutput {
-  vec4 pos;
-  uint prevent_dce;
-};
-
-layout(binding = 1, std430)
-buffer v_SB_RO_ssbo {
-  uint arg_0[];
-} sb_ro;
-layout(location = 0) flat out uint tint_interstage_location0;
-uint arrayLength_cfca0a() {
-  uint res = uint(sb_ro.arg_0.length());
-  return res;
-}
-VertexOutput vertex_main_inner() {
-  VertexOutput v = VertexOutput(vec4(0.0f), 0u);
-  v.pos = vec4(0.0f);
-  v.prevent_dce = arrayLength_cfca0a();
-  return v;
-}
-void main() {
-  VertexOutput v_1 = vertex_main_inner();
-  gl_Position = vec4(v_1.pos.x, -(v_1.pos.y), ((2.0f * v_1.pos.z) - v_1.pos.w), v_1.pos.w);
-  tint_interstage_location0 = v_1.prevent_dce;
-  gl_PointSize = 1.0f;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ffd0cc..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_cfca0a() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cfca0a());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_cfca0a() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cfca0a());
-}
-
-//
-// vertex_main
-//
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-
-struct vertex_main_outputs {
-  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
-  float4 VertexOutput_pos : SV_Position;
-};
-
-
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_cfca0a() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-VertexOutput vertex_main_inner() {
-  VertexOutput v_1 = (VertexOutput)0;
-  v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_cfca0a();
-  VertexOutput v_2 = v_1;
-  return v_2;
-}
-
-vertex_main_outputs vertex_main() {
-  VertexOutput v_3 = vertex_main_inner();
-  vertex_main_outputs v_4 = {v_3.prevent_dce, v_3.pos};
-  return v_4;
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ffd0cc..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_cfca0a() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cfca0a());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_cfca0a() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cfca0a());
-}
-
-//
-// vertex_main
-//
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-
-struct vertex_main_outputs {
-  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
-  float4 VertexOutput_pos : SV_Position;
-};
-
-
-ByteAddressBuffer sb_ro : register(t1);
-uint arrayLength_cfca0a() {
-  uint v = 0u;
-  sb_ro.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-VertexOutput vertex_main_inner() {
-  VertexOutput v_1 = (VertexOutput)0;
-  v_1.pos = (0.0f).xxxx;
-  v_1.prevent_dce = arrayLength_cfca0a();
-  VertexOutput v_2 = v_1;
-  return v_2;
-}
-
-vertex_main_outputs vertex_main() {
-  VertexOutput v_3 = vertex_main_inner();
-  vertex_main_outputs v_4 = {v_3.prevent_dce, v_3.pos};
-  return v_4;
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.msl
deleted file mode 100644
index ee7406e..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.msl
+++ /dev/null
@@ -1,131 +0,0 @@
-//
-// fragment_main
-//
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<uint, 1> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device uint* prevent_dce;
-  const device SB_RO* sb_ro;
-  const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
-};
-
-uint arrayLength_cfca0a(tint_module_vars_struct tint_module_vars) {
-  uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
-  return res;
-}
-
-fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_cfca0a(tint_module_vars);
-}
-//
-// compute_main
-//
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<uint, 1> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device uint* prevent_dce;
-  const device SB_RO* sb_ro;
-  const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
-};
-
-uint arrayLength_cfca0a(tint_module_vars_struct tint_module_vars) {
-  uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
-  return res;
-}
-
-kernel void compute_main(device uint* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_cfca0a(tint_module_vars);
-}
-//
-// vertex_main
-//
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<uint, 1> arg_0;
-};
-
-struct tint_module_vars_struct {
-  const device SB_RO* sb_ro;
-  const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
-};
-
-struct VertexOutput {
-  float4 pos;
-  uint prevent_dce;
-};
-
-struct vertex_main_outputs {
-  float4 VertexOutput_pos [[position]];
-  uint VertexOutput_prevent_dce [[user(locn0)]] [[flat]];
-};
-
-uint arrayLength_cfca0a(tint_module_vars_struct tint_module_vars) {
-  uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 4u);
-  return res;
-}
-
-VertexOutput vertex_main_inner(tint_module_vars_struct tint_module_vars) {
-  VertexOutput out = {};
-  out.pos = float4(0.0f);
-  out.prevent_dce = arrayLength_cfca0a(tint_module_vars);
-  return out;
-}
-
-vertex vertex_main_outputs vertex_main(const device SB_RO* sb_ro [[buffer(0)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_ro=sb_ro, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  VertexOutput const v = vertex_main_inner(tint_module_vars);
-  vertex_main_outputs tint_wrapper_result = {};
-  tint_wrapper_result.VertexOutput_pos = v.pos;
-  tint_wrapper_result.VertexOutput_prevent_dce = v.prevent_dce;
-  return tint_wrapper_result;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.spvasm
deleted file mode 100644
index 3c9e03b..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.spvasm
+++ /dev/null
@@ -1,218 +0,0 @@
-;
-; fragment_main
-;
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 26
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %SB_RO "SB_RO"
-               OpName %sb_ro "sb_ro"
-               OpName %arrayLength_cfca0a "arrayLength_cfca0a"
-               OpName %res "res"
-               OpName %fragment_main "fragment_main"
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce_block Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %1 Coherent
-               OpDecorate %_runtimearr_uint ArrayStride 4
-               OpMemberDecorate %SB_RO 0 Offset 0
-               OpDecorate %SB_RO Block
-               OpDecorate %sb_ro DescriptorSet 0
-               OpDecorate %sb_ro Binding 1
-               OpDecorate %sb_ro NonWritable
-       %uint = OpTypeInt 32 0
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
-%_runtimearr_uint = OpTypeRuntimeArray %uint
-      %SB_RO = OpTypeStruct %_runtimearr_uint
-%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
-      %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
-         %10 = OpTypeFunction %uint
-%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
-     %uint_0 = OpConstant %uint 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-       %void = OpTypeVoid
-         %21 = OpTypeFunction %void
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cfca0a = OpFunction %uint None %10
-         %11 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function
-         %12 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_ro %uint_0
-         %15 = OpArrayLength %uint %sb_ro 0
-               OpStore %res %15
-         %18 = OpLoad %uint %res None
-               OpReturnValue %18
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %21
-         %22 = OpLabel
-         %23 = OpFunctionCall %uint %arrayLength_cfca0a
-         %24 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
-               OpStore %24 %23 None
-               OpReturn
-               OpFunctionEnd
-;
-; compute_main
-;
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 26
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %SB_RO "SB_RO"
-               OpName %sb_ro "sb_ro"
-               OpName %arrayLength_cfca0a "arrayLength_cfca0a"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce_block Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %1 Coherent
-               OpDecorate %_runtimearr_uint ArrayStride 4
-               OpMemberDecorate %SB_RO 0 Offset 0
-               OpDecorate %SB_RO Block
-               OpDecorate %sb_ro DescriptorSet 0
-               OpDecorate %sb_ro Binding 1
-               OpDecorate %sb_ro NonWritable
-       %uint = OpTypeInt 32 0
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
-%_runtimearr_uint = OpTypeRuntimeArray %uint
-      %SB_RO = OpTypeStruct %_runtimearr_uint
-%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
-      %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
-         %10 = OpTypeFunction %uint
-%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
-     %uint_0 = OpConstant %uint 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-       %void = OpTypeVoid
-         %21 = OpTypeFunction %void
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cfca0a = OpFunction %uint None %10
-         %11 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function
-         %12 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_ro %uint_0
-         %15 = OpArrayLength %uint %sb_ro 0
-               OpStore %res %15
-         %18 = OpLoad %uint %res None
-               OpReturnValue %18
-               OpFunctionEnd
-%compute_main = OpFunction %void None %21
-         %22 = OpLabel
-         %23 = OpFunctionCall %uint %arrayLength_cfca0a
-         %24 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
-               OpStore %24 %23 None
-               OpReturn
-               OpFunctionEnd
-;
-; vertex_main
-;
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 46
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %vertex_main_position_Output %vertex_main_loc0_Output %vertex_main___point_size_Output
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %SB_RO "SB_RO"
-               OpName %sb_ro "sb_ro"
-               OpName %vertex_main_position_Output "vertex_main_position_Output"
-               OpName %vertex_main_loc0_Output "vertex_main_loc0_Output"
-               OpName %vertex_main___point_size_Output "vertex_main___point_size_Output"
-               OpName %arrayLength_cfca0a "arrayLength_cfca0a"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpMemberName %VertexOutput 0 "pos"
-               OpMemberName %VertexOutput 1 "prevent_dce"
-               OpName %VertexOutput "VertexOutput"
-               OpName %out "out"
-               OpName %vertex_main "vertex_main"
-               OpDecorate %_runtimearr_uint ArrayStride 4
-               OpMemberDecorate %SB_RO 0 Offset 0
-               OpDecorate %SB_RO Block
-               OpDecorate %sb_ro DescriptorSet 0
-               OpDecorate %sb_ro Binding 1
-               OpDecorate %sb_ro NonWritable
-               OpDecorate %vertex_main_position_Output BuiltIn Position
-               OpDecorate %vertex_main_loc0_Output Location 0
-               OpDecorate %vertex_main_loc0_Output Flat
-               OpDecorate %vertex_main___point_size_Output BuiltIn PointSize
-               OpMemberDecorate %VertexOutput 0 Offset 0
-               OpMemberDecorate %VertexOutput 1 Offset 16
-       %uint = OpTypeInt 32 0
-%_runtimearr_uint = OpTypeRuntimeArray %uint
-      %SB_RO = OpTypeStruct %_runtimearr_uint
-%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
-      %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%vertex_main_position_Output = OpVariable %_ptr_Output_v4float Output
-%_ptr_Output_uint = OpTypePointer Output %uint
-%vertex_main_loc0_Output = OpVariable %_ptr_Output_uint Output
-%_ptr_Output_float = OpTypePointer Output %float
-%vertex_main___point_size_Output = OpVariable %_ptr_Output_float Output
-         %15 = OpTypeFunction %uint
-%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
-     %uint_0 = OpConstant %uint 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-%VertexOutput = OpTypeStruct %v4float %uint
-         %26 = OpTypeFunction %VertexOutput
-%_ptr_Function_VertexOutput = OpTypePointer Function %VertexOutput
-         %30 = OpConstantNull %VertexOutput
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpConstantNull %v4float
-     %uint_1 = OpConstant %uint 1
-       %void = OpTypeVoid
-         %40 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
-%arrayLength_cfca0a = OpFunction %uint None %15
-         %16 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function
-         %17 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_ro %uint_0
-         %20 = OpArrayLength %uint %sb_ro 0
-               OpStore %res %20
-         %23 = OpLoad %uint %res None
-               OpReturnValue %23
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %VertexOutput None %26
-         %27 = OpLabel
-        %out = OpVariable %_ptr_Function_VertexOutput Function %30
-         %31 = OpAccessChain %_ptr_Function_v4float %out %uint_0
-               OpStore %31 %33 None
-         %34 = OpAccessChain %_ptr_Function_uint %out %uint_1
-         %36 = OpFunctionCall %uint %arrayLength_cfca0a
-               OpStore %34 %36 None
-         %37 = OpLoad %VertexOutput %out None
-               OpReturnValue %37
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %40
-         %41 = OpLabel
-         %42 = OpFunctionCall %VertexOutput %vertex_main_inner
-         %43 = OpCompositeExtract %v4float %42 0
-               OpStore %vertex_main_position_Output %43 None
-         %44 = OpCompositeExtract %uint %42 1
-               OpStore %vertex_main_loc0_Output %44 None
-               OpStore %vertex_main___point_size_Output %float_1 None
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.wgsl
deleted file mode 100644
index c1b2368..0000000
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.wgsl
+++ /dev/null
@@ -1,37 +0,0 @@
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
-struct SB_RO {
-  arg_0 : array<u32>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn arrayLength_cfca0a() -> u32 {
-  var res : u32 = arrayLength(&(sb_ro.arg_0));
-  return res;
-}
-
-@fragment
-fn fragment_main() {
-  prevent_dce = arrayLength_cfca0a();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  prevent_dce = arrayLength_cfca0a();
-}
-
-struct VertexOutput {
-  @builtin(position)
-  pos : vec4<f32>,
-  @location(0) @interpolate(flat)
-  prevent_dce : u32,
-}
-
-@vertex
-fn vertex_main() -> VertexOutput {
-  var out : VertexOutput;
-  out.pos = vec4<f32>();
-  out.prevent_dce = arrayLength_cfca0a();
-  return out;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl
deleted file mode 100644
index ba8e087..0000000
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2021 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
-struct SB_RW {
-  arg_0: array<u32>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn arrayLength(ptr<storage, array<u32>, read_write>) -> u32
-fn arrayLength_eb510f() -> u32{
-  var res: u32 = arrayLength(&sb_rw.arg_0);
-  return res;
-}
-@fragment
-fn fragment_main() {
-  prevent_dce = arrayLength_eb510f();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  prevent_dce = arrayLength_eb510f();
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 2eb349d..0000000
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_eb510f() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_eb510f()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_eb510f() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_eb510f()));
-  return;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 2eb349d..0000000
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// fragment_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_eb510f() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_eb510f()));
-  return;
-}
-//
-// compute_main
-//
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-
-uint arrayLength_eb510f() {
-  uint tint_symbol_1 = 0u;
-  sb_rw.GetDimensions(tint_symbol_1);
-  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
-  uint res = tint_symbol_2;
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_eb510f()));
-  return;
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.glsl
deleted file mode 100644
index 3559580..0000000
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.glsl
+++ /dev/null
@@ -1,43 +0,0 @@
-//
-// fragment_main
-//
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(binding = 0, std430)
-buffer f_prevent_dce_block_ssbo {
-  uint inner;
-} v;
-layout(binding = 1, std430)
-buffer f_SB_RW_ssbo {
-  uint arg_0[];
-} sb_rw;
-uint arrayLength_eb510f() {
-  uint res = uint(sb_rw.arg_0.length());
-  return res;
-}
-void main() {
-  v.inner = arrayLength_eb510f();
-}
-//
-// compute_main
-//
-#version 310 es
-
-layout(binding = 0, std430)
-buffer prevent_dce_block_1_ssbo {
-  uint inner;
-} v;
-layout(binding = 1, std430)
-buffer SB_RW_1_ssbo {
-  uint arg_0[];
-} sb_rw;
-uint arrayLength_eb510f() {
-  uint res = uint(sb_rw.arg_0.length());
-  return res;
-}
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  v.inner = arrayLength_eb510f();
-}
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 76770e8..0000000
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_eb510f() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_eb510f());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_eb510f() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_eb510f());
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 76770e8..0000000
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// fragment_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_eb510f() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_eb510f());
-}
-
-//
-// compute_main
-//
-
-RWByteAddressBuffer prevent_dce : register(u0);
-RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_eb510f() {
-  uint v = 0u;
-  sb_rw.GetDimensions(v);
-  uint res = (v / 4u);
-  return res;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  prevent_dce.Store(0u, arrayLength_eb510f());
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.msl b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.msl
deleted file mode 100644
index 1e3c402..0000000
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.msl
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// fragment_main
-//
-#include <metal_stdlib>
-
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-    const constant T& operator[](size_t i) const constant { return elements[i]; }
-    device T& operator[](size_t i) device { return elements[i]; }
-    const device T& operator[](size_t i) const device { return elements[i]; }
-    thread T& operator[](size_t i) thread { return elements[i]; }
-    const thread T& operator[](size_t i) const thread { return elements[i]; }
-    threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-    const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-    T elements[N];
-};
-
-struct TintArrayLengths {
-  /* 0x0000 */ tint_array<uint4, 1> array_lengths;
-};
-
-struct SB_RW {
-  tint_array<uint, 1> arg_0;
-};
-
-uint arrayLength_eb510f(const constant TintArrayLengths* const tint_symbol) {
-  uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
-  return res;
-}
-
-fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_eb510f(tint_symbol_2);
-  return;
-}
-
-//
-// compute_main
-//
-#include <metal_stdlib>
-
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-    const constant T& operator[](size_t i) const constant { return elements[i]; }
-    device T& operator[](size_t i) device { return elements[i]; }
-    const device T& operator[](size_t i) const device { return elements[i]; }
-    thread T& operator[](size_t i) thread { return elements[i]; }
-    const thread T& operator[](size_t i) const thread { return elements[i]; }
-    threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-    const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-    T elements[N];
-};
-
-struct TintArrayLengths {
-  /* 0x0000 */ tint_array<uint4, 1> array_lengths;
-};
-
-struct SB_RW {
-  tint_array<uint, 1> arg_0;
-};
-
-uint arrayLength_eb510f(const constant TintArrayLengths* const tint_symbol) {
-  uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 4u);
-  return res;
-}
-
-kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_eb510f(tint_symbol_2);
-  return;
-}
-
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.spvasm
deleted file mode 100644
index 9c47aef..0000000
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.spvasm
+++ /dev/null
@@ -1,124 +0,0 @@
-;
-; fragment_main
-;
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 26
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %SB_RW 0 "arg_0"
-               OpName %SB_RW "SB_RW"
-               OpName %sb_rw "sb_rw"
-               OpName %arrayLength_eb510f "arrayLength_eb510f"
-               OpName %res "res"
-               OpName %fragment_main "fragment_main"
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce_block Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %1 Coherent
-               OpDecorate %_runtimearr_uint ArrayStride 4
-               OpMemberDecorate %SB_RW 0 Offset 0
-               OpDecorate %SB_RW Block
-               OpDecorate %sb_rw DescriptorSet 0
-               OpDecorate %sb_rw Binding 1
-               OpDecorate %sb_rw Coherent
-       %uint = OpTypeInt 32 0
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
-%_runtimearr_uint = OpTypeRuntimeArray %uint
-      %SB_RW = OpTypeStruct %_runtimearr_uint
-%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
-      %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
-         %10 = OpTypeFunction %uint
-%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
-     %uint_0 = OpConstant %uint 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-       %void = OpTypeVoid
-         %21 = OpTypeFunction %void
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_eb510f = OpFunction %uint None %10
-         %11 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function
-         %12 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_rw %uint_0
-         %15 = OpArrayLength %uint %sb_rw 0
-               OpStore %res %15
-         %18 = OpLoad %uint %res None
-               OpReturnValue %18
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %21
-         %22 = OpLabel
-         %23 = OpFunctionCall %uint %arrayLength_eb510f
-         %24 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
-               OpStore %24 %23 None
-               OpReturn
-               OpFunctionEnd
-;
-; compute_main
-;
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 26
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %SB_RW 0 "arg_0"
-               OpName %SB_RW "SB_RW"
-               OpName %sb_rw "sb_rw"
-               OpName %arrayLength_eb510f "arrayLength_eb510f"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce_block Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %1 Coherent
-               OpDecorate %_runtimearr_uint ArrayStride 4
-               OpMemberDecorate %SB_RW 0 Offset 0
-               OpDecorate %SB_RW Block
-               OpDecorate %sb_rw DescriptorSet 0
-               OpDecorate %sb_rw Binding 1
-               OpDecorate %sb_rw Coherent
-       %uint = OpTypeInt 32 0
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
-%_runtimearr_uint = OpTypeRuntimeArray %uint
-      %SB_RW = OpTypeStruct %_runtimearr_uint
-%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
-      %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
-         %10 = OpTypeFunction %uint
-%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
-     %uint_0 = OpConstant %uint 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-       %void = OpTypeVoid
-         %21 = OpTypeFunction %void
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_eb510f = OpFunction %uint None %10
-         %11 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function
-         %12 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_rw %uint_0
-         %15 = OpArrayLength %uint %sb_rw 0
-               OpStore %res %15
-         %18 = OpLoad %uint %res None
-               OpReturnValue %18
-               OpFunctionEnd
-%compute_main = OpFunction %void None %21
-         %22 = OpLabel
-         %23 = OpFunctionCall %uint %arrayLength_eb510f
-         %24 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
-               OpStore %24 %23 None
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.wgsl
deleted file mode 100644
index ec2bb62..0000000
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
-struct SB_RW {
-  arg_0 : array<u32>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn arrayLength_eb510f() -> u32 {
-  var res : u32 = arrayLength(&(sb_rw.arg_0));
-  return res;
-}
-
-@fragment
-fn fragment_main() {
-  prevent_dce = arrayLength_eb510f();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  prevent_dce = arrayLength_eb510f();
-}
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl
similarity index 90%
copy from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl
copy to test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl
index 7f1d3b2..e425fbf 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl
@@ -1,4 +1,4 @@
-// Copyright 2022 The Dawn & Tint Authors
+// Copyright 2025 The Dawn & Tint Authors
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -47,17 +47,17 @@
 };
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-// fn arrayLength(ptr<storage, array<f16>, read_write>) -> u32
-fn arrayLength_cbd6b5() -> u32{
+// fn arrayLength(ptr<storage, runtime_array<f16>, read_write>) -> u32
+fn arrayLength_fd35e2() -> u32{
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_cbd6b5();
+  prevent_dce = arrayLength_fd35e2();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_cbd6b5();
+  prevent_dce = arrayLength_fd35e2();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.dxc.hlsl
similarity index 79%
copy from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.dxc.hlsl
index bda931f..14b418e 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cbd6b5()));
+  prevent_dce.Store(0u, asuint(arrayLength_fd35e2()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cbd6b5()));
+  prevent_dce.Store(0u, asuint(arrayLength_fd35e2()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.fxc.hlsl
similarity index 79%
rename from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.fxc.hlsl
index bda931f..14b418e 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -13,7 +13,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cbd6b5()));
+  prevent_dce.Store(0u, asuint(arrayLength_fd35e2()));
   return;
 }
 //
@@ -22,7 +22,7 @@
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint tint_symbol_1 = 0u;
   sb_rw.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 2u);
@@ -32,6 +32,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, asuint(arrayLength_cbd6b5()));
+  prevent_dce.Store(0u, asuint(arrayLength_fd35e2()));
   return;
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.glsl
similarity index 85%
copy from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.glsl
index c3492ac..f0c9fe4 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.glsl
@@ -14,12 +14,12 @@
 buffer f_SB_RW_ssbo {
   float16_t arg_0[];
 } sb_rw;
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 void main() {
-  v.inner = arrayLength_cbd6b5();
+  v.inner = arrayLength_fd35e2();
 }
 //
 // compute_main
@@ -35,11 +35,11 @@
 buffer SB_RW_1_ssbo {
   float16_t arg_0[];
 } sb_rw;
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint res = uint(sb_rw.arg_0.length());
   return res;
 }
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
-  v.inner = arrayLength_cbd6b5();
+  v.inner = arrayLength_fd35e2();
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.ir.dxc.hlsl
similarity index 75%
copy from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.ir.dxc.hlsl
index f458ee9..0bf6037 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 2u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cbd6b5());
+  prevent_dce.Store(0u, arrayLength_fd35e2());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 2u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cbd6b5());
+  prevent_dce.Store(0u, arrayLength_fd35e2());
 }
 
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.ir.fxc.hlsl
similarity index 75%
copy from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.ir.fxc.hlsl
index f458ee9..0bf6037 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 2u);
@@ -12,7 +12,7 @@
 }
 
 void fragment_main() {
-  prevent_dce.Store(0u, arrayLength_cbd6b5());
+  prevent_dce.Store(0u, arrayLength_fd35e2());
 }
 
 //
@@ -21,7 +21,7 @@
 
 RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
-uint arrayLength_cbd6b5() {
+uint arrayLength_fd35e2() {
   uint v = 0u;
   sb_rw.GetDimensions(v);
   uint res = (v / 2u);
@@ -30,6 +30,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce.Store(0u, arrayLength_cbd6b5());
+  prevent_dce.Store(0u, arrayLength_fd35e2());
 }
 
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.ir.msl
similarity index 91%
rename from test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.msl
rename to test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.ir.msl
index b892b82..3ab6ddb 100644
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.ir.msl
@@ -26,14 +26,14 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_cbd6b5(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_fd35e2(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 2u);
   return res;
 }
 
 fragment void fragment_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_cbd6b5(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_fd35e2(tint_module_vars);
 }
 //
 // compute_main
@@ -63,12 +63,12 @@
   const constant tint_array<uint4, 1>* tint_storage_buffer_sizes;
 };
 
-uint arrayLength_cbd6b5(tint_module_vars_struct tint_module_vars) {
+uint arrayLength_fd35e2(tint_module_vars_struct tint_module_vars) {
   uint res = (((*tint_module_vars.tint_storage_buffer_sizes)[0u].x - 0u) / 2u);
   return res;
 }
 
 kernel void compute_main(device uint* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]], const constant tint_array<uint4, 1>* tint_storage_buffer_sizes [[buffer(30)]]) {
   tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw, .tint_storage_buffer_sizes=tint_storage_buffer_sizes};
-  (*tint_module_vars.prevent_dce) = arrayLength_cbd6b5(tint_module_vars);
+  (*tint_module_vars.prevent_dce) = arrayLength_fd35e2(tint_module_vars);
 }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.msl b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.msl
similarity index 89%
copy from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.msl
copy to test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.msl
index 8c8026f..c3cdc02 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.msl
@@ -25,13 +25,13 @@
   tint_array<half, 1> arg_0;
 };
 
-uint arrayLength_cbd6b5(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_fd35e2(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 2u);
   return res;
 }
 
 fragment void fragment_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cbd6b5(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_fd35e2(tint_symbol_2);
   return;
 }
 
@@ -62,13 +62,13 @@
   tint_array<half, 1> arg_0;
 };
 
-uint arrayLength_cbd6b5(const constant TintArrayLengths* const tint_symbol) {
+uint arrayLength_fd35e2(const constant TintArrayLengths* const tint_symbol) {
   uint res = (((*(tint_symbol)).array_lengths[0u][0u] - 0u) / 2u);
   return res;
 }
 
 kernel void compute_main(device uint* tint_symbol_1 [[buffer(0)]], const constant TintArrayLengths* tint_symbol_2 [[buffer(30)]]) {
-  *(tint_symbol_1) = arrayLength_cbd6b5(tint_symbol_2);
+  *(tint_symbol_1) = arrayLength_fd35e2(tint_symbol_2);
   return;
 }
 
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.spvasm
similarity index 94%
rename from test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.spvasm
rename to test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.spvasm
index 71090ca..8c214db 100644
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.spvasm
@@ -18,7 +18,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_cbd6b5 "arrayLength_cbd6b5"
+               OpName %arrayLength_fd35e2 "arrayLength_fd35e2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -48,7 +48,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cbd6b5 = OpFunction %uint None %11
+%arrayLength_fd35e2 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_rw %uint_0
@@ -59,7 +59,7 @@
                OpFunctionEnd
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_cbd6b5
+         %24 = OpFunctionCall %uint %arrayLength_fd35e2
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
@@ -84,7 +84,7 @@
                OpMemberName %SB_RW 0 "arg_0"
                OpName %SB_RW "SB_RW"
                OpName %sb_rw "sb_rw"
-               OpName %arrayLength_cbd6b5 "arrayLength_cbd6b5"
+               OpName %arrayLength_fd35e2 "arrayLength_fd35e2"
                OpName %res "res"
                OpName %compute_main "compute_main"
                OpMemberDecorate %prevent_dce_block 0 Offset 0
@@ -114,7 +114,7 @@
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%arrayLength_cbd6b5 = OpFunction %uint None %11
+%arrayLength_fd35e2 = OpFunction %uint None %11
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function
          %13 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_rw %uint_0
@@ -125,7 +125,7 @@
                OpFunctionEnd
 %compute_main = OpFunction %void None %22
          %23 = OpLabel
-         %24 = OpFunctionCall %uint %arrayLength_cbd6b5
+         %24 = OpFunctionCall %uint %arrayLength_fd35e2
          %25 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0
                OpStore %25 %24 None
                OpReturn
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.wgsl
similarity index 75%
copy from test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.wgsl
copy to test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.wgsl
index ddbce3b..a73c60c 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/fd35e2.wgsl.expected.wgsl
@@ -8,17 +8,17 @@
 
 @group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
 
-fn arrayLength_cbd6b5() -> u32 {
+fn arrayLength_fd35e2() -> u32 {
   var res : u32 = arrayLength(&(sb_rw.arg_0));
   return res;
 }
 
 @fragment
 fn fragment_main() {
-  prevent_dce = arrayLength_cbd6b5();
+  prevent_dce = arrayLength_fd35e2();
 }
 
 @compute @workgroup_size(1)
 fn compute_main() {
-  prevent_dce = arrayLength_cbd6b5();
+  prevent_dce = arrayLength_fd35e2();
 }
diff --git a/tools/src/tint/intrinsic/gen/gen.go b/tools/src/tint/intrinsic/gen/gen.go
index a2bf436..cef7f76 100644
--- a/tools/src/tint/intrinsic/gen/gen.go
+++ b/tools/src/tint/intrinsic/gen/gen.go
@@ -518,6 +518,8 @@
 		return fqn.TemplateArguments[2].(sem.FullyQualifiedName)
 	case "array":
 		return fqn.TemplateArguments[0].(sem.FullyQualifiedName)
+	case "runtime_array":
+		return fqn.TemplateArguments[0].(sem.FullyQualifiedName)
 	}
 	return fqn
 }
@@ -538,6 +540,8 @@
 		return DeepestElementType(fqn.TemplateArguments[2].(sem.FullyQualifiedName))
 	case "array":
 		return DeepestElementType(fqn.TemplateArguments[0].(sem.FullyQualifiedName))
+	case "runtime_array":
+		return DeepestElementType(fqn.TemplateArguments[0].(sem.FullyQualifiedName))
 	case "ptr":
 		return DeepestElementType(fqn.TemplateArguments[1].(sem.FullyQualifiedName))
 	}
diff --git a/tools/src/tint/intrinsic/gen/permutate.go b/tools/src/tint/intrinsic/gen/permutate.go
index a7a1dec..570a35d 100644
--- a/tools/src/tint/intrinsic/gen/permutate.go
+++ b/tools/src/tint/intrinsic/gen/permutate.go
@@ -381,6 +381,7 @@
 
 	switch fqn.Target.GetName() {
 	case "array":
+	case "runtime_array":
 		if !isStorable(fqn.TemplateArguments[0].(sem.FullyQualifiedName)) {
 			return false
 		}